电子科技大学11秋《C语言》在线作业一二三答案
《C语言》在线作业一一、单选题:
3. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为()inta; f(a); (满分:2)
A. f(intarray[])
B. f(intarray[])
C. f(intarray[]
D. f(intarray)
4. 设有以下说明,则下面不正确的叙述是()uniondata {inti; charc; f1oatf;)un; (满分:2)
A. un所占的内存长度等于成员f的长度
B. un的地址和它的各成员地址都是同一地址
C. un可以作为函数参数
D. 不能对un赋值,但可以在定义un时对它初始化
5. 下面程序的运行结果是()#includemain() {int a=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b); } (满分:2)
A. a=3,b=11
B. a=2,b=8
C. )a=1,b=-1
D. a=4,b=9
6. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为() (满分:2)
A. int
B. float
C. double
D. 不确定
7. 有如下程序 main( ) { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ } printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是() (满分:2)
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
8. 以下正确的描述是() (满分:2)
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和switch语句体内使用break语句
C. 在循环体内使用break语句或continue语句的作用相同
D. 从多层循环嵌套中退出时, 只能使用goto语句
9. 若有 int k=2; int *ptr1, *ptr2; ptr1=&k; ptr2=&k ;那么下列正确的语句是() (满分:2)
A. k=*ptr1+*ptr2
B. ptr2=ptr1*2
C. *ptr1=*ptr2
D. ptr1=*ptr1*(*ptr2)
10. 下面四个选项中、均是正确的数值常量或字符常量的选项是() (满分:2)
A. 0.00f8.9e'&'
B. "a"3.9E-2.5 lel'\'''
C. '3'0110xFFOO 0a
D. +001 0xabcd 2e2 50.
11. 有以下程序段:intx=0,s=0; while(!x!= 0)s+=++x;printf("%d",s); 则有以下程序段() (满分:2)
A. 运行程序段后输出0
B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的
D. 程序段执行无限次
12. 结构化程序设计所规定的三种基本结构是() (满分:2)
A. 主程序、子程序、函数
B. 树形、网形、环形
C. 顺序、选择、循环
D. 输入、处理、输出
13. 有以下程序 :main( ) { int k=5,n=0; while(k>0) { switch(k) {default : break; case 1: n+=k; case 2: case 3: n+=k;} } printf(“%d\n”,n); } 程序运行后的输出结果是() (满分:2)
A. 0
B. 4
C. 6
D. 7
14. 若有说明: char*language[ ]={"F0RTRAN","BASIC","PASCAL", "JAVA","C"};则language的值是() (满分:2)
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
15. 设有语句inta,*p=*a;则下面表达式中属于地址表达式的是() (满分:2)
A. a
B. a
C. *(p+1*10+2)
D. *(a+2)
16. C语言规定,函数返回值的类型是由()决定的 (满分:2)
A. return语句中的表达式类型
B. 调用该函数时的主调函数类型
C. 调用该函数时由系统临时
D. 在定义函数时所指定的函数类型
17. 以下程序的正确运行结果是() #include int func(int a,int b); main( ) { int k=4,m=1,p; p=fun(k,m);printf(“%d,”,p); p=fun(k,m);printf(“%d\n”,p); } func(int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return m; } (满分:2)
A. 8,17
B. 8,16
C. 8,20
D. 8,8
18. 有四组对指针变量进行操作的语句,以下判断正确的选项是()(1)int *p,*q;q=p; int a,*p,*q;p=q=&a;(2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a;(3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*p=&a;*p=*q;(4)int a=20,*p;*q=&a;p=q; int p,*q;q=&q; (满分:2)
A. 正确:(1);不正确:(2),(3),(4)
B. 正确:(1),(4);不正确:(2),(3)
C. 正确:(3);不正确:(1),(2),(4)
D. 以上结论都不正确
19. 有定义:int x, *p1=&x, **p2=&p1;,则能够表示变量x值的是() (满分:2)
A. p1
B. p2
C. *p2
D. **p2
20. 下面四个选项中,均是非法常量的选项是() (满分:2)
A. as' -0fff '\0xa'
B. '\\' '\01' 12,456
C. -0xl8 01177 0xf
D. 0xabc'\0' "a"
21. 以下叙述中不正确的是() (满分:2)
A. 预处理命令行都必须以#号开始
B. 在程序中凡是以#号开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. 以下是正确的宏定义 #defineIBM PC
22. 下列说法不正确的是() (满分:2)
A. 形参是局部变量
B. 主函数中定义的变量在整个文件都有效
C. 可以在一个函数的复合语句中定义变量
D. 不同函数可以使用相同变量名
23. sizeof(float)是( ) (满分:2)
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
24. C语言规定:在一个源程序中,main函数的位置是() (满分:2)
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
25. 下列四组选项中,均不是C语言关键字的选项是() (满分:2)
A. define IFtype
B. geto charprintf
C. includescanf case
D. whilegopow
26. 以下不正确的叙述是() (满分:2)
A. 在C程序中,逗号运算符的优先级最低
B. 在C程序中,APH和aph是两个不同的变量
C. 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
27. 设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a<b)if(c==d) y=0; else y=1;给语句所表示的含义是() (满分:2)
A. y=0 a<b且c=d; y=1 a>=b
B. y=0 a<b且c=d; y=1 a>=b 且 c!=d
C. y=0 a<b且c=d; y=1 a<b 且 c!=d
D. y=0 a<b且c=d; y=1 c!=d
28. 若有说明:int a则数组a各元素() (满分:2)
A. 可在程序的运行阶段得到初值0
B. 可在程序的编译阶段得到初值0
C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得初值
29. 下面程序段,说法正确的为() for(t=1;t<=100;t++) {scanf("%d",&x); if(x<0)continue; printf("%3d",x);} (满分:2)
A. 当x<0时整个循环结束
B. x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数
30. 以下描述中正确的是() (满分:2)
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作
D. do~while循环中,根据情况可以省略while
31. 建立函数的目的之一是() (满分:2)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
32. 有以下程序: union pw { int i; char ch[2];}a; main() {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是() (满分:2)
A. 13
B. 14
C. 208
D. 209
33. 若用数组名作为函数调用的实参,传递给形参的是() (满分:2)
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
34. 下面程序的运行结果是() #include main(){ int k=0;charc='A';do {switch(c++) {case'A':k++;break; case'B':k--; case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; default:k=k/3;} k++;} while(c<' (满分:2)
A. k=3
B. k=4
C. k=2
D. k=0
35. 以下程序的输出结果是() main(){inta=100,x =10,y=20,okl=5,ok2=0; if(x<y) if(y ! =10) if(!okl)a=1; else if(ok2)a=10; a=-1; printf("%d\n",a );} (满分:2)
A. 1
B. 0
C. -1
D. 值不确定
二、多选题:
1. 以下程序正确计算p=n! (n>=0)的是() (满分:2)
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)
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
3. 以下哪些是关于指针数组的正确描述() (满分:2)
A. int (*a);
B. int *a;
C. 指针数组每个元素都是指针变量
D. 若int a; int *b[]={a,a,a,a}; 则b是指针数组
E. 指针数组与指向数组的指针是等价的
4. 有定义:int a,*p=a;,则能正确引用a元素地址的有() (满分:2)
A. a+3
B. *((p+2)+3)
C. *(p+3)
D. *(a+2)+3
E. p+2*4+3
5. 以下关于C源程序文件的说法中正确的是() (满分:2)
A. 是一种二进制文件
B. 是一种文本(ASCII码)文件
C. 可以用DOS的type命令显示其内容
D. 文件扩展名一般为c
三、判断题:
1. 表达式1/4+2.75的值是3。 (满分:2)
A. 错误
B. 正确
2. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。 (满分:2)
A. 错误
B. 正确
3. 以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况下,函数带回的返回值可能不止一个。 (满分:2)
A. 错误
B. 正确
4. continue语句用在循环体中,可使整个循环不结束。 (满分:2)
A. 错误
B. 正确
5. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。 (满分:2)
A. 错误
B. 正确
6. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。 (满分:2)
A. 错误
B. 正确
7. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。 (满分:2)
A. 错误
B. 正确
8. C语言把文件看作是一个字符的序列。 (满分:2)
A. 错误
B. 正确
9. 下面的程序段构成死循环。 a=5; while (1){a--; if (a<0) break ; } (满分:2)
A. 错误
B. 正确
10. 在函数定义中,形参变量是局部变量。 (满分:2)
A. 错误
B. 正确
《C语言》在线作业三
一、单选题:
1. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是() (满分:2)
A. c=*p1+*p2;
B. p2=c;
C. p1=p2;
D. c=*p1*(*p2);
2. 下面不正确的字符串常量是() (满分:2)
A. abc'
B. "12'12"
C. "0"
D. ""
3. 以下符合C语言语法的赋值表达式是() (满分:2)
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
4. 若有以下程序段:int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0&&t>a) {a=a;j- -;} a=t;} ...... 则该程序段的功能是() (满分:2)
A. 对数组a进行插入排序(升序)
B. 对数组a进行插入排序(降序)
C. 对数组a进行选择排序(升序)
D. 对数组a进行选择排序(降序)
5. 若有说明: char*language[ ]={"F0RTRAN","BASIC","PASCAL", "JAVA","C"};则language的值是() (满分:2)
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
6. sizeof(float)是( ) (满分:2)
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
7. 有两个字符数组a、b,则以下正确的输入格式是() (满分:2)
A. gets(a,b);
B. scanf("%s%s",a,b);
C. scanf("%s%s",&a,&b);
D. gets("a"),gets("b");
8. 已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为() (满分:2)
A. double fun (int x,double y)
B. fun (int x,double y)
C. double fun (int,double);
D. fun(x,y) ;
9. 设有说明:char w; intx;f1oaty;doublez;则表达式w* x+z-y值的数据类型为() (满分:2)
A. float
B. char
C. int
D. double
10. 有定义:int *p1,*p2;,则正确的赋值语句为() (满分:2)
A. p1=p2;
B. p1/=p2;
C. p1+=p2;
D. p1*=p2;
11. C语言中用于循环结构程序设计的三种常用控制语句是() (满分:2)
A. if、for、continue
B. if、switch、break
C. for、while、do-while
D. 顺序结构、选择结构、循环结构
12. 有定义:int a, (*p)=a;,数组a的首地址为100,*(p+2)+3等于() (满分:2)
A. 116
B. 118
C. 120
D. 122
13. 标准库函数fgets(s,n,f)的功能是() (满分:2)
A. 从文件f中读取长度为n的字符串存入s中
B. 从文件f中读取长度小于n的字符串存入s中
C. 从文件f中读取n个字符串存入s中
D. 从文件f中读取长度为n-1的字符串存入s中
14. C语言规定,函数返回值的类型是由() 决定的 (满分:2)
A. return语句中的表达式类型
B. 调用该函数时的主调函数类型
C. 调用该函数时由系统临时
D. 在定义函数时所指定的函数类型
15. 设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是() (满分:2)
A. 7
B. 8
C. 6
D. 2
16. 下面程序的运行结果是()#include "stdio.h"main(){int i; for(i=1;i<=5;i++){if (i%2) printf("#");else continue;printf("*");}printf("$");} (满分:2)
A. *#*#$
B. #*#*#*$
C. *#*#$
D. #*#*$
17. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是() (满分:2)
A. a>=10 or a<=0
B. a>=0|a<=10
C. a>=10 &&a<=0
D. a>=10‖a<=0
18. 建立函数的目的之一是() (满分:2)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
19. 已知函数的调用形式:fread(buffer,size,count,fp),其中buffer代表的是() (满分:2)
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
20. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为() int a; f(a); (满分:2)
A. f(int array[])
B. f(int array[])
C. f(int array[])
D. f(int array)
21. 有定义:int x,*p=&x;,则能为变量x正确赋值的语句是() (满分:2)
A. scanf(“%d”,x);
B. scanf(“%d”,p)
C. scanf(“%d”,*p);
D. scanf(“%f”,&x);
22. 有定义:int x,*p;,能使指针变量p指向变量x的语句是() (满分:2)
A. *p=&x;
B. p=&x;
C. *p=x;
D. p=*&x;
23. 不能把字符串:Hello!赋给数组b的语句是() (满分:2)
A. char b={'H','e','l','l','o','!'};
B. char b;b="Hello!";
C. char b;strcpy(b,"Hello!");
D. char b="Hello!";
24. 对for(表达式1;;表达式3)可理解为() (满分:2)
A. for(表达式1;0;表达式3)
B. for(表达式1;1;表达式3)
C. for(表达式1;表达式1;表达式3)
D. for(表达式1;表达式3;表达式3)
25. 若有以下说明:int a={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是() (满分:2)
A. *p+6
B. *(p+6)
C. *(p+5)
D. p+5
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(intp,intq){intt; t=p;p=q;q=t;} (满分:2)
A. 该程序完全正确
B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D. 以上说法都不正确
27. 下面四个选项中,均是不合法的整型常量的选项是() (满分:2)
A. ‘--0f1 -0xffff 0011
B. -0Xcdf 017 12,456
C. -018 999 5e2
D. -0x48eg -068 03f
28. 建立函数的目的之一是() (满分:2)
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
29. 对宏命令的处理是() (满分:2)
A. 在程序执行时进行
B. 在程序对其它语句进行编译前进行
C. 在程序连接时进行
D. 与程序中其它语句同时进行编译
30. 以下不正确的if语句形式是() (满分:2)
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++;}
31. 若有说明:int a则数组a各元素() (满分:2)
A. 可在程序的运行阶段得到初值0
B. 可在程序的编译阶段得到初值0
C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得初值
32. 当说明一个结构体变量时系统分配给它的内存是() (满分:2)
A. 各成员所需内存量的总和
B. 结构中第一个成员所需内存量
C. 成员中占内存量最大者所需的容量
D. 结构中最后一个成员所需内存量
33. 有字符数组a和b,则正确的输出形式是() (满分:2)
A. puts(a,b);
B. printf("%s,%s",a[],b[]);
C. putchar(a,b);
D. puts(a),puts(b);
34. 下面程序段,说法正确的为() for(t=1;t<=100;t++) {scanf("%d",&x); if(x<0)continue; printf("%3d",x);} (满分:2)
A. 当x<0时整个循环结束
B. x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数
35. 以下不正确的说法是() (满分:2)
A. 实参可以是常量,变量或表达式
B. 形参可以是常量,变量或表达式
C. 实参可以为任意类型
D. 如果形参和实参的类型不一致,以形参类型为准
二、多选题:
1. 以下程序正确计算p=n! (n>=0)的是() (满分:2)
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. 以下关于C源程序文件的说法中正确的是() (满分:2)
A. 是一种二进制文件
B. 是一种文本(ASCII码)文件
C. 可以用DOS的type命令显示其内容
D. 文件扩展名一般为c
3. 在函数调用过程中,下列说法正确的是() (满分:2)
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
4. 下面关于C语言的说法错误的是( ) (满分:2)
A. C函数必须有形式参数
B. 任何复合语句体的{ }中允许定义局部变量
C. 局部变量都存储在动态存贮区
D. C程序的执行起点只能是main函数
5. 以下程序正确计算p=n! (n>=0)的是() (满分:2)
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--;
三、判断题:
1. 已知int a,*p;则语句p=&a;是正确的。 (满分:2)
A. 错误
B. 正确
2. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。 (满分:2)
A. 错误
B. 正确
3. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。 (满分:2)
A. 错误
B. 正确
4. C语言采用解释方式将源程序转换为二进制的目标代码。 (满分:2)
A. 错误
B. 正确
5. 函数即可以嵌套定义,又可以嵌套调用。 (满分:2)
A. 错误
B. 正确
6. 字符型数据和整数之间是不可以通用的。 (满分:2)
A. 错误
B. 正确
7. C程序是由函数构成的,每一个函数完成相对独立的功能。 (满分:2)
A. 错误
B. 正确
8. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。 (满分:2)
A. 错误
B. 正确
9. 在任何情况下,对二维数组的初始化都可以省略第一维的大小。 (满分:2)
A. 错误
B. 正确
10. 设有下列说明语句struct ss{int x;float y;}ex; 则ex是结构体类型名。 (满分:2)
A. 错误
B. 正确
《C语言》在线作业二
一、单选题:
1. 有定义:int a, (*p)=a;,数组a的首地址为100,*(p+2)+3等于() (满分:2)
A. 116
B. 118
C. 120
D. 122
2. 以下程序的输出结果是 () main() {int i; for(i=0;i<3;i++) switch(i){ case 0:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } (满分:2)
A. 022111
B. 021021
C. 000122
D. 012
3. 设有说明:char w; intx;f1oaty;doublez;则表达式w* x+z-y值的数据类型为() (满分:2)
A. float
B. char
C. int
D. double
4. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是() (满分:2)
A. float型
B. int型
C. long型
D. double型
5. 一个C程序的执行是从() (满分:2)
A. 本程序的main函数开始,到main函数结束
B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C. 本程序的main函数开始,到本程序文件的最后一个函数结束
D. 本程序文件的第一个函数开始,到本程序main函数结束
6. 若有以下说明和语句:structstudent {intage; intnum;}std,* p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是() (满分:2)
A. std.age
B. p->age
C. (*p).age
D. *p.age
7. 若有说明:inta[3][4]={0};则下面正确的叙述是() (满分:2)
A. 只有元素a可得到初值0
B. 此说明语句不正确:
C. 数组a中各元素都可得到初值,但其值不一定为0。
D. 数组a中每个元素均可得到初值0
8. 以下正确的描述是() (满分:2)
A. C语言的预处理功能是指完成宏替换和包含文件的调用
B. 预处理指令只能位于C源程序文件的首部
C. 凡是C源程序中行首以"#"标识的控制行都是预处理指令
D. C语言的编译预处理就是对源程序进行初步的语法检查
9. 若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是() (满分:2)
A. (*p)max(a,b);
B. *pmax(a,b);
C. (*p)(a,b);
D. *p(a,b);
10. 下面程序的运行结果是()main(){char str[]="SSSWLIA", c; int k;for(k=2;(c=str)!='\0';k++){switch(c){case 'I': ++k; break;case 'L': continue;default: putchar(c);continue;}putchar('*');}} (满分:2)
A. SSW*
B. SW*
C. SW*A
D. SW
11. 下面程序的运行结果是 ( ) main() {inta,i; for(i=1;i3))%5; printf("%2d",a);}} (满分:2)
A. —40404
B. —40403
C. 一40443
D. 一40440
12. 下列说法不正确的是() (满分:2)
A. 形参是局部变量
B. 主函数中定义的变量在整个文件都有效
C. 可以在一个函数的复合语句中定义变量
D. 不同函数可以使用相同变量名
13. 为了避免嵌套的条件分支语句 if——else中的else总是与()组成成对关系 (满分:2)
A. 缩排位置相同的
B. 在其之前未配对的
C. 在其之前未配对的最近的if
D. 在同一行上的if
14. 若i为整型变量,则以下循环执行次数是():for(i=2;i==0;)printf("%d",i-- ); (满分:2)
A. 无限次
B. 0次
C. 1 次
D. 2次
15. 若运行以下程序时,从键盘输入3.6,2.4,(表示回车),则下面程序的运行结果是()#include # include main(){float x,y,z; scanf("%f,%f",&x,&y); z=x/y; while(1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y;} else break;} printf("%f\n",y);} (满分:2)
A. 1.5
B. 1.6
C. 2.0
D. 2.4
16. enum color{red,green,yellow=5,white,black}定义了一枚举类型。编译程序为值表中各标识符分配的枚举值依次为() (满分:2)
A. 1、2、3、4、5
B. 0、1、5、2、3
C. 0、1、5、6、7
D. 3、4、5、6、7
17. 在C语言中,要求运算数必须是整型的运算符是() (满分:2)
A. /
B. ++
C. !=
D. %
18. 若调用一个函数,且此函数中没有return语句,关于该函数则正确的说法是() (满分:2)
A. 没有返回值
B. 返回若干个系统默认值
C. 能返回一个用户所希望的函数值
D. 返回一个不确定的值
19. 下面程序的运行结果是()#include main(){char a[]="morning",t;int i,j=0;for(i=1;i<7;i++) if(a<a)j=i;t=a;a=a;a=t;puts(a);} (满分:2)
A. mogninr
B. mo
C. morning
D. morning
20. 下面程序的运行结果是()#include"stdio.h"main(){int a,b;for(a=1,b=1;a=20) break;if(b%3==1) {b+=3;continue;}b-=5;}printf("%d\n",a);} (满分:2)
A. 7
B. 8
C. 9
D. 10
21. 以下描述中正确的是() (满分:2)
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值变为零("假")的操作
D. do~while循环中,根据情况可以省略while
22. 位段名访问的方式是() (满分:2)
A. 用结构名.位段名
B. 用位段名
C. 用结构名
D. *&位段名
23. 以下正确的说法是() (满分:2)
A. 定义函数时,形参的类型说明可以放在函数体内
B. return后边的值不能为表达式
C. 如果函数值的类型与返回值类型不一致,以函数值类型为准
D. 如果形参与实参的类型不一致,以实参类型为准
24. 以下正确的说法是() (满分:2)
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元
D. 形参是虚拟的,不占用存储单元
25. 若有说明:int a[ ]={0,0};则下面不正确的叙述是() (满分:2)
A. 数组a的每个元素都可得到初值0
B. 二维数组a的第一维大小为1
C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a行数为1
D. 只有元素a和a可得初值0,其余元素均得不到初值0
26. 若使用一维数组名作函数实参,则以下正确的说法是() (满分:2)
A. 必须在主调函数中说明此数组的大小
B. 实参数组类型与形参数组类型可以不匹配
C. 在被调函数中,不需要考虑形参数组的大小
D. 实参数组名与形参数组名必须一致
27. 若有 int k=2; int *ptr1, *ptr2; ptr1=&k; ptr2=&k ;那么下列正确的语句是() (满分:2)
A. k=*ptr1+*ptr2
B. ptr2=ptr1*2
C. *ptr1=*ptr2
D. ptr1=*ptr1*(*ptr2)
28. 下面四个选项中,均是不合法的整型常量的选项是() (满分:2)
A. ‘--0f1 -0xffff 0011
B. -0Xcdf 017 12,456
C. -018 999 5e2
D. -0x48eg -068 03f
29. 已知一个函数的定义如下:double fun(int x, double y) { …… } 则该函数正确的函数原型声明为() (满分:2)
A. double fun (int x,double y)
B. fun (int x,double y)
C. double fun (int,double);
D. fun(x,y) ;
30. 关于函数声明,以下不正确的说法是() (满分:2)
A. 如果函数定义出现在函数调用之前,可以不必加函数原型声明
B. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
C. 函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
D. 标准库不需要函数原型声明
31. 以下不正确的说法是() (满分:2)
A. 全局变量,静态变量的初值是在编译时指定的
B. 静态变量如果没有指定初值,则其初值为0
C. 动态变量如果没有指定初值,则其初值不确定
D. 函数中的静态变量在函数每次调用时,都会重新设置初值
32. C语言提供的预处理功能包括条件编译,其基本形式为:#XXX标识符 程序段1#else程序段2#endif这里XXX可以是() (满分:2)
A. define或include
B. ifdef或include
C. ifdef或ifndef或define
D. ifdef或ifndef或if
33. sizeof(float)是( ) (满分:2)
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
34. 若有如下语句:intx=3; do { printf(" %d\n",x -=2);} while(!(--x));则上面程序段() (满分:2)
A. 输出的是 1
B. 输出的是1和-2
C. 输出的是3和0
D. 是死循环
35. 以下不正确的定义语句是() (满分:2)
A. doublex={2.0,4.0,6.0,8.0,10.0};
B. inty={0,1,3,5,7,9};
C. charc1[]={’1’,’2’,’3’,’4’,’5’};
D. char c2[]=}{'\x10','\xa','\x8'};
二、多选题:
1. 以下关于C源程序文件的说法中正确的是() (满分:2)
A. 是一种二进制文件
B. 是一种文本(ASCII码)文件
C. 可以用DOS的type命令显示其内容
D. 文件扩展名一般为c
2. 在下面C语言的函数说明语句中,正确的是() (满分:2)
A. int fun(int , int);
B. int fun(int x,y);
C. int fun(x,y);
D. int fun(int x; int y);
E. int fun(int x,int y);
3. 以下哪些是关于指针数组的正确描述() (满分:2)
A. int (*a);
B. int *a;
C. 指针数组每个元素都是指针变量
D. 若int a; int *b[]={a,a,a,a}; 则b是指针数组
E. 指针数组与指向数组的指针是等价的
4. 以下程序正确计算p=n! (n>=0)的是() (满分:2)
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--;
5. 在函数调用过程中,下列说法正确的是() (满分:2)
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
三、判断题:
1. 设有下列说明语句struct ss{int x;float y;}ex; 则ex是结构体类型名。 (满分:2)
A. 错误
B. 正确
2. C语言采用解释方式将源程序转换为二进制的目标代码。 (满分:2)
A. 错误
B. 正确
3. C程序是由函数构成的,每一个函数完成相对独立的功能。 (满分:2)
A. 错误
B. 正确
4. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。 (满分:2)
A. 错误
B. 正确
5. 条件运算符“?:”的优先级高于赋值运算符。 (满分:2)
A. 错误
B. 正确
6. continue语句用在循环体中,可使整个循环不结束。 (满分:2)
A. 错误
B. 正确
7. 字符型数据和整数之间是不可以通用的。 (满分:2)
A. 错误
B. 正确
8. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。 (满分:2)
A. 错误
B. 正确
9. 指针变量的值是无符号整型值,所以指针变量都是整型变量。 (满分:2)
A. 错误
B. 正确
10. 在内存中存储结构体类型的变量要占连续一段的存储单元。 (满分:2)
A. 错误
B. 正确
页:
[1]