一、单选题(共 20 道试题,共 100 分。)
V
1. 有定义:int x,*p;,能使指针变量p指向变量x的语句是(B )
A. *p=&x;
B. p=&x;
C. *p=x;
D. p=*&x;
满分:5 分
2. 判断字符串s1是否大于字符串s2应当使用(D )
A. if (sls2)
B. if (strcmp(s1,s2))
C. if (strcmp(s2,sl)0)
D. if (strcmp(s1,s2)0)
满分:5 分
3. 有以下程序段:int x=0,s=0; while (!x!= 0) s+=++x; printf("%d",s); 则有以下程序段( B)
A. 运行程序段后输出0
B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的
D. 程序段执行无限次
满分:5 分
4. 根据下面的定义,能印出字母m的语句是( )根据下面的定义,能印出字母M的语句是(D ) struct person{char name[9];int age;}; struct person class[10]={“john”,17, “paul”,19, “mary”,18, “adam”,16};
A. printf(“%c/n”,class[3].name);
B. printf(“%c/n”,class[3].name[1]);
C. printf(“%c/n”,class[2].name[1]);
D. printf(“%c/n”,clsaa[2].name[0]);
满分:5 分
5. #define能作简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是(C )
A. #define f(x) 4*x*x+3*x+2
B. #define f 4*x*x+3*x+2
C. #define f(a) (4*a*a+3*a+2)
D. #define (4*a*a+3*a+2)f(a)
满分:5 分
6. 若用数组名作为函数调用的实参,传递给形参的是( A)
A. 数组的首地址
B. 数组中第一个元素的值
C. 数组中的全部元素的值
D. 数组元素的个数
满分:5 分
7. 建立函数的目的之一是( B)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
满分:5 分
8. main函数的正确说明形式是(B )
A. main(int argc,char *argv)
B. main(int abc,char **abv)
C. main(int argc,char argv)
D. )main(int c,char v[])
满分:5 分
9. 对下面程序段: #define A 3 #define B(a) ((A+1)*a) x=3*(A十B(7)); 正确的判断是(B )
A. 程序错误,不许嵌套宏定义
B. )x=93
C. x=21
D. 程序错误,宏定义不许有参数
满分:5 分
10. 标准库函数fgets(s,n,f)的功能是(D ) 此答案错误
A. 从文件f中读取长度为n的字符串存入s中
B. 从文件f中读取长度小于n的字符串存入s中
C. 从文件f中读取n个字符串存入s中
D. 从文件f中读取长度为n-1的字符串存入s中
满分:5 分
11. 下面函数调用语句含有实参的个数为(B ) func((expl,exp2), (exp3,exp4,exp5));
A. 1
B. 2
C. 4
D. 5
满分:5 分
12. 下面程序应能对两个整型变量的值进行交换。以下正确的说法是( D) main( ) {int a=10,b=20; printf("(1)a=%d,b=%d/n",a,b); swap(&a,&b); prinif("(2)a=%d,b=%d/n",a,b);} swap(int p,int q) {int t; t=p;p=q;q=t;}
A. 该程序完全正确
B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D. 以上说法都不正确
满分:5 分
13. 下面程序段的运行结果是(C ) int n=0; while(n++<=2); printf("%d",n);
A. 2
B. 3
C. 4
D. 有语法错误
满分:5 分
14. 以下正确的函数形式是(D )
A. double fun(int x,int y) {z=x+y; return z;}
B. fun(int x,y) {int z; return z;}
C. fun(x,y) {int x,y; double z; z=x+y; return z;}
D. double fun(int x,int y) {double z; z=x+y; return z;}
满分:5 分
15. 以下关于枚举的叙述不正确的是(D )
A. 枚举变量只能取对应枚举类型的枚举元素表中元素
B. 可以在定义枚举类型时对枚举元素进行初始化
C. 枚举元素表中的元素有先后次序,可以进行比较
D. 枚举元素的值可以是整数或字符串
满分:5 分
16. 下述程序的输出结果是(A ) #include <stdio.h void main() {enum team {jone,adam,smith=10,bob=smith+2,liang}; printf("%d,%d",adam,liang); }此答案错误
A. 1,13
B. 2,13
C. p-data.a
D. p.data.a
满分:5 分
17. 下列四组选项中,均不是C语言关键字的选项是( A)
A. define IF type
B. geto char printf
C. include scanf case
D. while go pow
满分:5 分
18. 有定义:int *p1,*p2;,则正确的赋值语句为(A )
A. p1=p2;
B. p1/=p2;
C. p1+=p2;
D. p1*=p2;
满分:5 分
19. C语言规定,函数返回值的类型是由(D ) 决定的
A. return语句中的表达式类型
B. 调用该函数时的主调函数类型
C. 调用该函数时由系统临时
D. 在定义函数时所指定的函数类型
满分:5 分
20. 以下能对一维数组a进行正确初始化的语句是( D) 此答案错误
A. int a[10]=(0,0,0,0,0)
B. int a[10]={}
C. int a[]={0};
D. int a[10]={10*1};
满分:5 分
版权声明
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益
请联系本站我们将配合处理!