|
一、单选题(共 35 道试题,共 70 分。)V 1. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )
A. c=*p1+*p2;
B. p2=c;
C. p1=p2;
D. c=*p1*(*p2);
满分:2 分
2. 下面不正确的字符串常量是( )
A. abc'
B. "12'12"
C. "0"
D. ""
满分:2 分
3. 以下符合C语言语法的赋值表达式是( )
A. d=9+e+f=d+9
B. d=9+e,f=d+9
C. d=9+e,e++,d+9
D. d=9+e++=d+7
满分:2 分
4. 若有以下程序段:int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j- -;} a[j+1]=t;} ...... 则该程序段的功能是( )
A. 对数组a进行插入排序(升序)
B. 对数组a进行插入排序(降序)
C. 对数组a进行选择排序(升序)
D. 对数组a进行选择排序(降序)
满分:2 分
5. 若有说明: char *language[ ]={"F0RTRAN","BASIC","PASCAL", "JAVA","C"};则language[2]的值是( )
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
满分:2 分
6. sizeof(float)是( )
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
满分:2 分
7. 有两个字符数组a、b,则以下正确的输入格式是( )
A. gets(a,b);
B. scanf("%s%s",a,b);
C. scanf("%s%s",&a,&b);
D. gets("a"),gets ("b");
满分:2 分
8. 已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为( )
A. double fun (int x,double y)
B. fun (int x,double y)
C. double fun (int ,double );
D. fun(x,y) ;
满分:2 分
9. 设有说明:char w; int x; f1oat y; double z;则表达式w* x+z-y值的数据类型为( )
A. float
B. char
C. int
D. double
满分:2 分
10. 有定义:int *p1,*p2;,则正确的赋值语句为( )
A. p1=p2;
B. p1/=p2;
C. p1+=p2;
D. p1*=p2;
满分:2 分
11. C语言中用于循环结构程序设计的三种常用控制语句是( )
A. if、for、continue
B. if、switch、break
C. for、while、do-while
D. 顺序结构、选择结构、循环结构
满分:2 分
12. 有定义:int a[5][4], (*p)[4]=a;,数组a的首地址为100,*(p+2)+3等于( )
A. 116
B. 118
C. 120
D. 122
满分:2 分
13. 标准库函数fgets(s,n,f)的功能是( )
A. 从文件f中读取长度为n的字符串存入s中
B. 从文件f中读取长度小于n的字符串存入s中
C. 从文件f中读取n个字符串存入s中
D. 从文件f中读取长度为n-1的字符串存入s中
满分:2 分
14. C语言规定,函数返回值的类型是由( ) 决定的
A. return语句中的表达式类型
B. 调用该函数时的主调函数类型
C. 调用该函数时由系统临时
D. 在定义函数时所指定的函数类型
满分:2 分
15. 设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )
A. 7
B. 8
C. 6
D. 2
满分:2 分
16. 下面程序的运行结果是( ) #include "stdio.h" main() {int i; for(i=1;i<=5;i++) {if (i%2) printf("#"); else continue; printf("*"); } printf("$"); }
A. *#*#$
B. #*#*#*$
C. *#*#$
D. #*#*$
满分:2 分
17. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( )
A. a>=10 or a<=0
B. a>=0|a<=10
C. a>=10 &&a<=0
D. a>=10‖a<=0
满分:2 分
18. 建立函数的目的之一是( )
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
满分:2 分
19. 已知函数的调用形式:fread(buffer,size,count,fp),其中buffer代表的是( )
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
满分:2 分
20. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为( ) int a[3][4]; f(a);
A. f(int array[][6])
B. f(int array[3][])
C. f(int array[][4])
D. f(int array[2][5])
满分:2 分
21. 有定义:int x,*p=&x;,则能为变量x正确赋值的语句是( )
A. scanf(“%d”,x);
B. scanf(“%d”,p)
C. scanf(“%d”,*p);
D. scanf(“%f”,&x);
满分:2 分
22. 有定义:int x,*p;,能使指针变量p指向变量x的语句是( )
A. *p=&x;
B. p=&x;
C. *p=x;
D. p=*&x;
满分:2 分
23. 不能把字符串:Hello!赋给数组b的语句是( )
A. char b[10]={'H','e','l','l','o','!'};
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!";
满分:2 分
24. 对for(表达式1;;表达式3)可理解为( )
A. for(表达式1; 0;表达式3)
B. for(表达式1;1;表达式3)
C. for(表达式1;表达式1;表达式3)
D. for(表达式1;表达式3;表达式3)
满分:2 分
25. 若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是( )
A. *p+6
B. *(p+6)
C. *(p+5)
D. p+5
满分:2 分
26. 下面程序应能对两个整型变量的值进行交换。以下正确的说法是( ) 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. 以上说法都不正确
满分:2 分
27. 下面四个选项中,均是不合法的整型常量的选项是( )
A. ‘--0f1 -0xffff 0011
B. -0Xcdf 017 12,456
C. -018 999 5e2
D. -0x48eg -068 03f
满分:2 分
28. 建立函数的目的之一是( )
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
满分:2 分
29. 对宏命令的处理是( )
A. 在程序执行时进行
B. 在程序对其它语句进行编译前进行
C. 在程序连接时进行
D. 与程序中其它语句同时进行编译
满分:2 分
30. 以下不正确的if语句形式是( )
A. if(x>y && x!=y);
B. if(x= =y) x+=y;
C. if(x != y) scanf("%d",&x ) else scanf("%d",&y);
D. if(x<y) {x++;y++;}
满分:2 分
31. 若有说明:int a[3][4]则数组a各元素( )
A. 可在程序的运行阶段得到初值0
B. 可在程序的编译阶段得到初值0
C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得初值
满分:2 分
32. 当说明一个结构体变量时系统分配给它的内存是( )
A. 各成员所需内存量的总和
B. 结构中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
满分:2 分
33. 有字符数组a[80]和b[80],则正确的输出形式是( )
A. puts(a,b);
B. printf("%s,%s",a[],b[]);
C. putchar(a,b);
D. puts(a),puts(b);
满分:2 分
34. 下面程序段,说法正确的为( ) for (t=1; t<=100;t++) {scanf("%d",&x); if(x<0) continue; printf("%3d",x);}
A. 当x<0时整个循环结束
B. x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数
满分:2 分
35. 以下不正确的说法是( )
A. 实参可以是常量,变量或表达式
B. 形参可以是常量,变量或表达式
C. 实参可以为任意类型
D. 如果形参和实参的类型不一致,以形参类型为准
满分:2 分
二、多选题(共 5 道试题,共 10 分。)V 1. 以下程序正确计算p=n! (n>=0)的是( )
A. for(p=1.0,k=1;k<=n;) p*=k++;
B. p=1.0;k=0;while(k<n) p*=++k;
C. p=1.0;k=1;do{++k;p*=k;} while(k<=n);
D. p=1.0;for(k=n;k>=1;k--) p*=k--;
满分:2 分
2. 以下关于C源程序文件的说法中正确的是( )
A. 是一种二进制文件
B. 是一种文本(ASCII码)文件
C. 可以用DOS的type命令显示其内容
D. 文件扩展名一般为c
满分:2 分
3. 在函数调用过程中,下列说法正确的是( )
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
满分:2 分
4. 下面关于C语言的说法错误的是( )
A. C函数必须有形式参数
B. 任何复合语句体的{ }中允许定义局部变量
C. 局部变量都存储在动态存贮区
D. C程序的执行起点只能是main函数
满分:2 分
5. 以下程序正确计算p=n! (n>=0)的是( )
A. for(p=1.0,k=1;k<=n;) p*=k++;
B. p=1.0;k=0;while(k<n) p*=++k;
C. p=1.0;k=1;do{++k;p*=k;} while(k<=n);
D. p=1.0;for(k=n;k>=1;k--) p*=k--;
满分:2 分
三、判断题(共 10 道试题,共 20 分。)V 1. 已知int a[4],*p;则语句p=&a;是正确的。
A. 错误
B. 正确
满分:2 分
2. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。
A. 错误
B. 正确
满分:2 分
3. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。
A. 错误
B. 正确
满分:2 分
4. C语言采用解释方式将源程序转换为二进制的目标代码。
A. 错误
B. 正确
满分:2 分
5. 函数即可以嵌套定义,又可以嵌套调用。
A. 错误
B. 正确
满分:2 分
6. 字符型数据和整数之间是不可以通用的。
A. 错误
B. 正确
满分:2 分
7. C程序是由函数构成的,每一个函数完成相对独立的功能。
A. 错误
B. 正确
满分:2 分
8. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。
A. 错误
B. 正确
满分:2 分
9. 在任何情况下,对二维数组的初始化都可以省略第一维的大小。
A. 错误
B. 正确
满分:2 分
10. 设有下列说明语句struct ss{int x;float y;}ex; 则ex是结构体类型名。
A. 错误
B. 正确
满分:2 分 |
|