|
16秋《C语言》在线作业1
一、单选题:
1.以下叙述中不正确的是( ) (满分:5)
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
2.下面程序的运行结果是( ) main( ) {int a[6],i; for(i=1;i3))%5; printf("%2d",a[i]);}} (满分:5)
A. —40404
B. —40403
C. 一40443
D. 一40440
3.在C语言中,正确的的结论是( ) (满分:5)
A. 对文件操作必须先关闭文件
B. 对文件操作必须先打开文件
C. 对文件操作顺序没有统一规定
D. 以上都错
4.以下各组选项中,均能正确定义二维实型数组a的选项是( ) (满分:5)
A. float a[3][4]; float a[][4]; float a[3][]={{1}
{0}};
B. float a(3
4);float a[3][4];float a[][]={{0}
{0}};
C. float a[3][4];static float a[][4]={{0}
{0}};auto float a[][4]={{0}
{0}
{0}};
D. float a[3][4];float a[3][];float a[][4]
5.若有定义:int x=0,*p=&x;则语句printf(“%d\n”,*p);的输出结果是( ) (满分:5)
A. 随机值
B. 0
C. X的地址
D. P的地址
6.已有函数max(a,b)为了让函数指针变量p指向函数max正是确的赋值方法是( ) (满分:5)
A. p=max;
B. *p=max;
C. p=max(a
b);
D. *p=max(a
b);
7.以下程序的输出结果是( ) 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); } } (满分:5)
A. 022111
B. 021021
C. 000122
D. 012
8.以下叙述中不正确的是( ) (满分:5)
A. 预处理命令行都必须以#号开始
B. 在程序中凡是以#号开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. 以下是正确的宏定义 #define IBM PC
9.以下程序的输出结果是( ) main( ) {int x= 2,y=-1,z=2; if(x<y) if(y<0) z= 0; else z+ =1; printf("%d\n",z);} (满分:5)
A. 3
B. 2
C. 1
D. 0
10.请读程序:#include#define MUL(x,y)(x)*ymain( ) {int a=3,b=4,c; c=MUL(a++,b++); printf("%d\n",c); }上面程序的输出结果是( ) (满分:5)
A. 12
B. 15
C. 20
D. 16
11.有以下程序 :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); } 程序运行后的输出结果是( ) (满分:5)
A. 0
B. 4
C. 6
D. 7
12.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为( ) (满分:5)
A. *(a[i]+j)
B.(a+i)
C. *(a+j)
D. a[i]+j
13.请阅读以下程序:#include main( ) {float a,bscanf("%f",&a);if(a<0.0) b=0.0;else if((a<0.5) &&(a!=2.0)) b= 1.0/(a+2.0);else if(a<10.0) b= 1.0/x ;else b=10.0;printf("%f\n",y); } 若运行时输入2.0(回车),则上面程序的输出结果是( ) (满分:5)
A. 0.000000
B. 0.500000
C. 1. 000000
D. 0.250000
14.以下叙述中正确的是( ) (满分:5)
A. 在程序的一行上可以出现多个有效的预处理命令行
B. 使用带参的宏时
参数的类型应与宏定义时的一致
C. 宏替换不占用运行时间
只占编译时间
D. 在以下定义中CR是称为"宏名"的标识符 #define C R 045
15.以下程序的正确运行结果是( ) #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; } (满分:5)
A. 8
17
B. 8
16
C. 8
20
D. 8
8
16.以下正确的叙述是( ) (满分:5)
A. 在C程序中
每行中只能写一条语句
B. 若a是实型变量
C程序中允许赋值a=10
因此实型变量中允许存放整型数
C. 在C程序中
无论是整数还是实数
都能被准确无误地表示
D. 在C程序中
%是只能用于整数运算的运算符
17.下面程序的输出是( )main( ) {char x=040; printf("%d\n",x=x<<1);} (满分:5)
A. 100
B. 160
C. 120
D. 64
18.若有说明: char *language[ ]={"F0RTRAN","BASIC","PASCAL", "JAVA","C"};则language[2]的值是( ) (满分:5)
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
19.以下正确的说法是( ) (满分:5)
A. 定义函数时
形参的类型说明可以放在函数体内
B. return后边的值不能为表达式
C. 如果函数值的类型与返回值类型不一致
以函数值类型为准
D. 如果形参与实参的类型不一致
以实参类型为准
20.下面程序段的循环次数是( )int k=2;while(k==0) printf(″%d″,k);k--; printf(″\n″); (满分:5)
A. 0次
B. 1次
C. 2次
D. 无限次
|
|