C机考复习题(2012-12) 下载本文

( A)

A) 将p1所指字符串复制到p2所指内存空间 B) 将pl所指字符串的地址赋给指针p2

C) 对pl和p2两个指针所指字符串进行比较

D) 检查p1和p2两个指针所指字符串中是否有'\\0' 89.有以下程序

#include int fun(int a, int b) { if (b==0) return a; else return (fun(--a, --b)); }

main() { printf(\程序的运行结果是( B ) A) 1 B) 2 C) 3 D) 4

90.在函数调用过程中如果函数funA调用了函数funB函数funB又调用了函数funA则( B )

A) 称为函数的直接递归调用 B) 称为函数的间接递归调用 C) 称为函数的循环调用

D) C语言中不允许这样的递归调用 91.以下叙述中正确的是( B )

A) 全局变量的作用域一定比局部变量的作用域范围大

B) 静态(static)类别变量的生存期贯穿于整个程序的运行期间 C) 函数的形参都属于全局变量

D) 未在定义语句中赋初值的auto变量和static变量的初值都是随机值 92.以下程序的输出结果是 ( C ) int a,b; void fun()

{ a=100; b=200; } main()

{ int a=5, b=7; fun();

printf(\

}

A) 100200 B) 57

C) 200100 D) 75

93.以下程序的输出结果是 ( D ) int f()

{ static int i=0; int s=1; s+=i; i++; return s; }

main()

{ int i,a=0;

for(i=0;i<5;i++) a+=f(); printf(\} A) 20 B) 24 C) 25 D) 15 二、多选

1.下列定义变量的语句中正确的是( ABC ) A) int _int; B) double int_; C) char For; D) float US$;

2.设有定义int k=1, m=2float f=7;则以下选项中符合C语言语法的表达式是 ( ABD ) A) k=k>=k B) -k++ C) k%int(f) D) k<>m

3.若有定义语句double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则正确引用x数组元素的是( ACD ) A) *p B) x[5]

C) *(p+1) D) *x

4.若要求定义具有10个int型元素的一维数组a则以下定义语句中正确的是 ( ABC )

A) #define N 10 int a[N];

B) #define n 5 int a [2*n]; C) int a[5+5]; D) int n=10,a[n];

5.按照C语言规定的用户标识符命名规则能出现在标识符中的是( ACD ) A) 大写字母 B) 连接符 C) 数字字符 D) 下划线

6.以下不合法的字符型常量是(BD ) A) '\\x13' B) '\\081' C) '\\065' D) \

7.以下合法的字符常量是 ( BCD )

A) '\\018' B) '\\\C) '\\\\' D) '\\0xcc'

8.以下叙述中正确的是( ABD ) A) C语句必须以分号结束

B) 复合语句在语法上被看作一条语句

C) 空语句出现在任何位置都不会影响程序运行 D) 赋值表达式末尾加分号就构成赋值语句 9.以下合法的赋值语句是(AD ) A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;

10.以下能正确定义二维数组的选项是 ( AB )

A) int a[2][2] = {{1}, {2}}; B) int a[ ][2] = {1, 2, 3, 4}; C) int a[2][2] = {{1}, {2},{3}}; D) int a[2][ ] = {{1, 2}, {3, 4}};

11.若有定义int aa[8]则以下表达式中能代表数组元aa[1]的地址的是 ( ABD ) A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1

12.已有定义int i,a[10],*p; , 则不合法的赋值语句是( AB ) A) p=100; B) p=a[5] C) p=&a[2]+2 D) p=a+2;

13.以下能正确进行字符串赋初值的语句是( BCD ) A) char str[5]=\B) char str[]=\C) char *str=\

D) char str[5]={‘g',‘o',‘o',‘d'};

14.已知大写字母A的ASCⅡ码是65小写字母a的ASCⅡ码是97。以下能将变量c中的大写字母转换为对应小写字母的语句是( ABC ) A) c=(c-'A')&+'a' B) c=c+32

C) c=c-'A'+'a'

D) c=('A'+c)&-'a' 15.设有以下定义和语句

char str[20]=\p=str;

则以下叙述中错误的是( BCD ) A) *p与str[0]中的值相等 B) 可以执行p++操作 C) 可以执行str++操作

D) str数组长度和p所指向的字符串长度相等

16.对于下面①②两个循环语句正确的描述是(AB )。