第一章 单元测试
1、单选题:下列叙述中正确的是()。
A:C语言编译时不检查语法
B:C语言的函数可以嵌套定义
C:C语言所有函数都是外部函数
D:C语言的子程序有过程和函数两种
正确答案:【C语言的子程序有过程和函数两种】
2、单选题:以下叙述中正确的是()。
A:C源程序经编译形成的二进制代码可以直接运行
B:C语言的源程序不必通过编译就可以直接运行
C:C语言中的函数不可以单独进行编译
D:C语言中的每条可执行语句最终都将被转换成二进制的机器指令
正确答案:【C语言中的每条可执行语句最终都将被转换成二进制的机器指令】
3、单选题:C语言的注释定界符是()。
A:/* */
B:[ ]
C:* *
D:{ }
正确答案:【/* */】
4、单选题:C语言源程序的基本单位是()。
A:函数
B:子程序
C:过程
D:标识符
正确答案:【函数】
5、单选题:一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是()
A:有零个或多个输出
B:有零个或多个输入
C:有穷性
D:可行性
正确答案:【有零个或多个输出】
6、单选题:以下叙述中正确的是 ( )。
A:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
B:C语言出现的最晚,具有其他语言的一切优点
C:C语言可以不用编译就能被计算机识别执行
D:C语言比其他语言高级
正确答案:【C语言以接近英语国家的自然语言和数学语言作为语言的表达形式】
7、单选题:有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是
A:C001.C
B:C001.OBJ
C:C001.EXE
D:C001.DAT
正确答案:【C001.DAT】
8、单选题:能将高级语言编写的源程序转换为目标程序的是()。
A:链接程序
B:解释程序
C:编译程序
D:编辑程序
正确答案:【编译程序】
9、单选题:结构化程序由三种基本结构组成, 由这三种基本结构组成的算法()。
A:能完成符合结构化的任务
B:可以完成任何复杂的任务
C:只能完成部分复杂的任务
D:只能完成一些简单的任务
正确答案:【能完成符合结构化的任务】
10、单选题:以下叙述中错误的是()。
A:C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B:C语言源程序经编译后生成后缀为.obj的目标程序
C:用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D:C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
正确答案:【C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令】
11、判断题:C语言程序将从源程序中第一个函数开始执行
A:对
B:错
正确答案:【错】
12、判断题:C 语言程序中可以有多个函数 , 但只能有一个主函数。
A:对
B:错
正确答案:【对】
13、判断题:在C 语言中,程序的模块化是利用函数实现的
A:错
B:对
正确答案:【对】
14、判断题:结构化程序设计中由三种基本结构构成的程序只能解决小规模的问题
A:对
B:错
正确答案:【错】
15、判断题:所有C程序都需要编译链接无误后才能进行
A:对
B:错
正确答案:【对】
16、判断题:C程序在运行过程中所有计算都以十进制方式进行
A:错
B:对
正确答案:【错】
17、判断题:C 语言具有简洁明了的特点。
A:对
B:错
正确答案:【对】
18、判断题:C 语言是一种具有某些低级语言特征的高级语言。
A:错
B:对
正确答案:【对】
19、判断题:C语言的书写格式不会影响程序的可读性。
A:对
B:错
正确答案:【错】
第二章 单元测试
1、单选题:以下语句中,不能实现回车换行的是()。
A:fwrite(“n”,1,1,stdout);
B:putchar(“n”);
C:printf(“n”);
D:fprintf(stdout,”n”)
正确答案:【putchar(“n”);】
2、单选题:以下标识符中,不能作为合法的C用户定义标识符的是()。
A:to
B:answer
C:signed
D:_if
正确答案:【signed】
3、单选题:下面四个选项中,均是不合法的用户标识符的选项是()。
A:float la0 _A
B:A P_0 do
C:b-a goto int
D:_123 temp int
正确答案:【b-a goto int】
4、单选题:执行以下程序段后,输出结果和a的值是()。
int a=10; printf(“%d”,a++);
A:11和10
B:11和11
C:10和10
D:10和11
正确答案:【10和11】
5、单选题:下列字符序列中,是C语言保留字的是()。
A:sizeof
B:scanf
C:sqrt
D:include
正确答案:【sizeof】
6、单选题:以下数据中,不正确的数值或字符常量是()。
A:0
B:5L
C:o13
D:9861
正确答案:【o13】
7、单选题:若整型变量a与i已正确定义,且i已正确赋值,合法的语句是()。
A:a++=i;
B:a=a++=5;
C:a==1
D:++i;
正确答案:【++i;】
8、单选题:下列变量说明语句中,正确的是()。
A:int x,z;
B:char a;b;c;
C:char:a b c;
D:int x;z;
正确答案:【int x,z;】
9、单选题:设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值()。
A:1
B:2
C:0
D:3
正确答案:【2】
10、判断题:C 语言标准格式输出函数 printf() 的参数表是由若干个表达式组成。
A:对
B:错
正确答案:【对】
11、判断题:C 语言规定 : 定义符号常量时必须用大写字母。
A:错
B:对
正确答案:【错】
12、判断题:double 型变量在内存中占的字节数比 int 型变量在内存中占的字节数多。
A:错
B:对
正确答案:【对】
13、判断题:C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。
A:对
B:错
正确答案:【错】
14、判断题:下划线是标识符中的合法字符。
A:错
B:对
正确答案:【对】
15、判断题:变量的类型通常指存储类型和数据类型两种。
A:错
B:对
正确答案:【对】
16、判断题:C 语言标准输出操作中 ,putchar() 函数可以输出显示一个字符串。
A:对
B:错
正确答案:【错】
17、判断题:一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。
A:对
B:错
正确答案:【错】
18、判断题:任何表达式语句都是表达式加分号组成的。
A:错
B:对
正确答案:【对】
第三章 单元测试
1、单选题:下列( )表达式的值为真,其中a=5;b=8;c=10;d=0
A:a-b<c*d
B:(a*2-c)||d
C:a*2>8+2
D:a&&d
正确答案:【a-b<c*d】
2、单选题:在C语言中,要求运算数必须是整型或字符型的运算符是()。
A:&&
B:||
C:&
D:!
正确答案:【&】
3、单选题:如果int a=2,b=3,c=0,下列描述正确的是()
A:!a!=(b!=c)表达式的值为1
B:a>b!=c和a>(b!=c)的执行顺序是一样的
C:a||(b=c)执行后b的值为0
D:a&&b>c的结果为假
正确答案:【!a!=(b!=c)表达式的值为1】
4、单选题:void 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”,a,b);}该程序的输出结果是( )
A:2,1
B:2,2
C:1,0
D:1,1
正确答案:【2,1】
5、单选题:以下程序的运行结果是( )。
void main()
{ int a=2, b= -1, c=2 ;
if(a<b)
if(b<0) c=0;
else c+=1;
printf(“%d”, c );
}
A:0
B:3
C:1
D:2
正确答案:【2】
6、单选题:设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是()。
A:if(a>b) {c=a;a=b;b=c;}
B:if(a>b) {c=a,a=b,b=c;}
C:if(a>b) c=a;a=b;b=c;
D:if(a>b) c=a,a=b,b=c;
正确答案:【if(a>b) c=a;a=b;b=c;】
7、单选题:有以下程序 #include<stdio.h> void main() { int c=0,k; for(k=1; k<3; k++) switch(k) { default: c+=k; case 2: c++; break; case 4: c+=2; break; } printf(“%dn”,c); } 程序运行后的输出结果是()。
A:7
B:5
C:9
D:3
正确答案:【3】
8、单选题:与语句:k=a>b?(b>c?1:0):0;功能相同的是()。
A:if(a>b) k=1;
else if(b>c) k=1;
else k=0;
B:if((a>b)||(b>c) k=1;
else k=0;
C:if(a<=b) k=0;
else if(b<=c) k=1;
D:if((a>b)&&(b>c)) k=1;
else k=0;
正确答案:【if((a>b)&&(b>c)) k=1;
else k=0;】
9、单选题:若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A:0
B:1
C:2
D:不知道a的值,不能确定
正确答案:【1】
10、判断题:一个结构化程序必须同时由顺序、分支、循环三种结构组成
A:错
B:对
正确答案:【对】
11、判断题:逻辑表达式的值只能为1或0。
A:对
B:错
正确答案:【对】
12、判断题:有条件表达式:(EXP)?i++;j–,中(EXP)与EXP==1是等价的
A:对
B:错
正确答案:【错】
13、判断题:正确表达某个人的年龄age在10~20岁之间(不含边界)的C语言表达式是 10<age<20
A:错
B:对
正确答案:【错】
14、判断题:在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
A:对
B:错
正确答案:【对】
15、判断题:在switch语句中,每一个的case常量表达式的值可以相同。
A:错
B:对
正确答案:【错】
16、判断题:case语句后如没有break,顺序向下执行。
A:错
B:对
正确答案:【对】
17、判断题:C语言表达式’0’<=c<=’9’可以判断c中的字符是否为数字字符
A:对
B:错
正确答案:【错】
18、判断题:条件表达式不能取代一般if的语句。
A:对
B:错
正确答案:【错】
19、判断题:if(a=5) 是允许的。
A:对
B:错
正确答案:【对】
第四章 单元测试
1、单选题:C语言中while和do-while循环的主要区别是()。
A:do-while的循环体至少无条件执行一次
B:do-while循环体不能是复合语句
C:While的循环控制条件比do-while的循环控制条件严格
D:do-while允许从外部转到循环体内
正确答案:【do-while的循环体至少无条件执行一次】
2、单选题:以下不是死循环的语句是()。
A:for(i=10; ; i++ ) sum+=i;
B:while(1) {x++;}
C:for(;; x+= i);
D:for(; (c=getchar())!=’n’;) printf(“%c”, c);
正确答案:【for(; (c=getchar())!=’n’;) printf(“%c”, c);】
3、单选题:以下程序段的输出结果是( )。
int i, j, m=0;
for(i=1; i<=15; i+=4)
for(j=3; j<=19; j+= 4)
m++;
printf(“%d”, m);
A:25
B:12
C:20
D:15
正确答案:【20】
4、单选题:有以下程序:#include<stdio.h>void main(){ int y=9;for( ; y>0; y--)if(y%3==0) printf(“%d”, --y);}程序的运行结果是()。
A:875421
B:963
C:852
D:741
正确答案:【852】
5、单选题:有以下程序:#include<stdio.h>void main() {int i,j,m=1;for(i=1;i<3;i++){ for(j=3;j>0;j-- ) {if(i*j>3) break;m*=i*j; }}printf(“m=%dn”,m); }程序运行后的输出结果是()。
A:m=2
B:m=6
C:m=4
D:m=5
正确答案:【m=6】
6、单选题:有以下程序 #include<stdio.h>void main() { int y=10; while(y–); printf(“y=%dn”,y); } 程序执行后的输出结果是 ()。
A:y=0
B:while 构成无限循环
C:y=1
D:y=-1
正确答案:【y=-1】
7、单选题:有以下程序 #include<stdio.h> void main() {int n=2,k=0; while(k++ && n++>2); printf(“%d %dn”,k,n);} 程序运行后的输出结果是()。
A:1 3
B:5 7
C:0 2
D:1 2
正确答案:【1 2】
8、单选题:以下程序中的变量已正确定义for(i=0;i<4;i++,j++) for(k=1;k<3;k++); printf(”*”);程序段的输出结果是()。
A:********
B:*
C:**
D:****
正确答案:【*】
9、单选题:设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是()。
A:n=0; for(ch=getchar();ch!=’n’;n++);
B:for(n=0; getchar()!=’n’;n++);
C:n=0; while((ch=getchar())!=’n’) n++;
D:n=0; while(getchar()!=’n’) n++;
正确答案:【n=0; for(ch=getchar();ch!=’n’;n++);】
10、单选题:有以下程序#include<stdio.h>void main(){ int i, j; for(i=3; i>=l; i–) { for(j=1; j<=2; j++)printf(“%d”, i+j); printf(“n”); }}程序的运行结果是( )。
A:4 3 2
5 4 3
B:2 3
3 4
4 5
C:2 3 4
3 4 5
D:4 5
3 4
2 3
正确答案:【4 5
3 4
2 3】
11、判断题:for循环的三个表达式可以任意省略,while,do-while也是如此。
A:对
B:错
正确答案:【错】
12、判断题:循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
A:对
B:错
正确答案:【对】
13、判断题:break 则是结束整个循环过程,不再判断执行循环的条件是否成立。
A:对
B:错
正确答案:【对】
14、判断题:do-while循环至少要执行一次循环语句。
A:对
B:错
正确答案:【对】
15、判断题:break用于结束本次循环
A:对
B:错
正确答案:【错】
16、判断题:continue 不是结束本次循环,而是终止整个循环的执行。
A:错
B:对
正确答案:【错】
17、判断题:C语言的三种循环不可以互相嵌套。
A:错
B:对
正确答案:【错】
18、判断题:do-while循环的while后的分号可以省略。
A:错
B:对
正确答案:【错】
19、判断题:结构化程序使用goto 语句会很便捷
A:错
B:对
正确答案:【错】
20、判断题:已定义int i=-3; 则while(i++);是死循环
A:对
B:错
正确答案:【错】
第五章 单元测试
1、单选题:以下数组定义中错误的是()。
A:int x[2][3]={{1,2},{3,4},{5,6}};
B:int x[][3]={{1,2,3},{4,5,6}};
C:int x[2][3]={1,2,3,4,5,6};
D:int x[][3]={0};
正确答案:【int x[2][3]={{1,2},{3,4},{5,6}};】
2、单选题:有以下程序:#include<stdio.h>#define N 4void fun(int a[][N],int b[]){ int i;for(i=0;i<N;i++) b[i]=a[i][i]-a[i][N-1-i];}void main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i;fun (x, y);for(i=0; i<N; i++)printf(“%d,”, y[i]); printf(“n”); }程序运行后的输出结果是()。
A:-3,-1,1,3,
B:-12,-3,0,0,
C:0,1,2,3,
D:-3,-3,-3,-3,
正确答案:【-3,-1,1,3,】
3、单选题:设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。
A:do{ scanf(“%c”;&s[i]);} while(s[i++]!=’n’); s[i]=”;
B:scanf(“%s”,s);
C:gets(s);
D:while((s[i++]=getchar())!=’n’);s[i]=”;
正确答案:【scanf(“%s”,s);】
4、单选题:有以下程序:#include<stdio.h>void main(){char s[]=”012xy8s34f4w2″; int i,n=0; for ( i=0;s[i]!=0;i++ ) if(s[i] >= ‘0’ && s[i] <= ‘9’)n++; printf(“%dn”,n);}程序运行后的输出结果是()。
A:8
B:3
C:7
D:0
正确答案:【3】
5、单选题:下列定义数组的语句中,正确的是()。
A:int x[ ];
B: int N=10;
int x[N];
C:#define N 10
int x[N];
D:int x[0..10];
正确答案:【#define N 10
int x[N];】
6、单选题:有以下程序:#include<stdio.h>void main(){ int a[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0: switch(a[i]%2){ case 0:a[i]++;break;case 1:a[i]–; } break;case 1:a[i]=0;}for(i=0;i<4;i++)printf(“%d “,a[i]); printf(“n”);}程序运行后的输出结果是()。
A:0 3 0 4
B:3 0 4 0
C:2 0 5 0
D:3 3 4 4
正确答案:【3 0 4 0】
7、单选题:有以下程序:#include<stdio.h>void main(){ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0; i<3; i++)for(j=i;j<=i;j++) t+=b[i][b[j][i]];printf(“%dn”,t);}程序运行后的输出结果是()。
A:9
B:3
C:4
D:1
正确答案:【4】
8、单选题:有以下程序#include<stdio.h>void main(){ char s[]=”012xy8s34f4w2”; int i,n=0; for(i=0; s[i]!=0; i++) if(s[i]>=’0’&&s[i]<=’9′)n++; printf(“%dn”,n); }程序运行后的输出结果是()。
A:8
B:3
C:0
D:7
正确答案:【3】
9、单选题:有以下程序段char name[20];int num;scanf(“name=%s num=%d”,name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为()。
A:Lili
B:name=Lili
C:name=Lili num=1001
D:Lili num=
正确答案:【Lili】
10、判断题:在C语言中能逐个地使用下标变量,也能一次引用整个数组。
A:错
B:对
正确答案:【错】
11、判断题:能对二维数组a进行正确初始化的语句是int a[2][ ]={{1,0,1},{5,2,3,}};
A:错
B:对
正确答案:【错】
12、判断题:若有定义语句:int b[3][4]; 按在内存中的存放顺序,b数组的第4个元素是a[1][3].
A:对
B:错
正确答案:【错】
13、判断题:能对二维数组a进行正确初始化的语句是int a[ ][3]={{1,0,1},{},{1,1}};
A:对
B:错
正确答案:【错】
14、判断题:在c语言中,引用数组元素时,其数组下标的数据类型允许是整型表达式
A:错
B:对
正确答案:【对】
15、判断题:一个数组是由连续的一块内存单元组成的,数组名就是这块连续内存单元的首地址
A:对
B:错
正确答案:【对】
16、判断题:C语言允许用字符串的方式对数组作初始化赋值。
A:错
B:对
正确答案:【对】
17、判断题:用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志’’。
A:对
B:错
正确答案:【对】
第六章 单元测试
1、判断题:函数调用可以作为一个独立的语句存在
A:对
B:错
正确答案:【对】
2、判断题:若函数调用时的实参为变量,函数的实参和其对应的形参共占同一存储单元
A:对
B:错
正确答案:【错】
3、判断题:定义时,函数的形参只是形式上的存在,不占用具体存储单元
A:错
B:对
正确答案:【对】
4、判断题:函数可以没有参数,但是不能没有返回值
A:对
B:错
正确答案:【错】
5、判断题:函数定义时必须给出函数体,函数体内至少有一条语句
A:对
B:错
正确答案:【错】
6、判断题:C语言中,函数可以用原型说明,也可用简单说明
A:对
B:错
正确答案:【错】
7、判断题:函数的存储类别有外部的和静态的两种,它们的作用域分别是程序级的和文件级的
A:错
B:对
正确答案:【对】
8、判断题:C程序函数的形参不可以说明为static型变量
A:对
B:错
正确答案:【对】
9、判断题:C程序函数中定义的自动变量,系统不自动赋确定的初值
A:对
B:错
正确答案:【对】
10、判断题:在一个C源程序文件中所定义的全局变量,其作用域为所在程序的全部范围
A:对
B:错
正确答案:【错】
11、单选题:有以下程序: #include<stdio.h> int fun(int a, int b) { if(b==0) return a; else return(fun(–a, –b)); } void main(){ printf(“%dn”, fun(4,2));}程序的运行结果是( )。
A:1
B:4
C:3
D:2
正确答案:【2】
12、单选题:有以下程序:#include<stdio.h>int f(int x);void main(){ int n=1,m;m=f(f(f(n))); printf(“%dn”,m);}int f(int x) { return x*2; }程序运行后的输出结果是()。
A:2
B:4
C:1
D:8
正确答案:【8】
13、单选题:有以下程序:#include <stdio.h>void fun(int a[],int n){ int i,t; for(i=0;i<n/2;i++) { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t; }}void main(){ int k[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2; i<8; i++)printf(“%d”,k[i]);printf(“n”);}程序的运行结果是()。
A:345678
B:1098765
C:321678
D:876543
正确答案:【321678】
14、单选题:有以下程序:#include<stdio.h>int fun(int x,int y){if(x!=y) return((x+y)/2); else return (x);}void main(){int a=4,b=5,c=6; printf( “%dn” ,fun(2*a,fun(b,c)));}程序运行后的输出结果是()。
A:3
B:6
C:8
D:12
正确答案:【6】
15、单选题:有以下程序:#include <stdio.h>int fun(){ static int x=1;x*=2;return x;}void main(){ int i,s=1;for( i=1; i<=3; i++ ) s*=fun();printf(“%dn”, s);}程序运行后的输出结果是()。
A:10
B:30
C:0
D:64
正确答案:【64】
16、单选题:有以下程序 #include<stdio.h> int f(int x); void main( ) { int a, b=0; for(a=0; a<3; a++) { b=b+f(a); purchar(‘A’+b); } } int f(int x) { return x*x+1;}程序运行后的输出结果是()。
A:BCF
B:ABE
C:BCD
D:BD1
正确答案:【BD1】
17、单选题:有以下程序#include<stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j; for(i=0;i<N;i++) { b[i]=a[i][0]; for(j=1;j<N;j++) if(b[i]<a[i][j]) b[i]=a[i][j]; } } void main( ){ int x[N][N]={1,2,3,4,5,6,7,8,9}, y[N],i; fun(x,y); for(i=0;i<N;i++) printf( “%d,”,y[i] ); printf( “n”);} 程序运行后的输出结果是( )。
A:2,4,8
B:3,5,7
C:1,3,5
D:3,6,9
正确答案:【3,6,9】
18、单选题:有以下程序#include<stdio.h>int a=1,b=2;void fun1(int a, int b ){ printf(“%d %d”,a,b); }void fun2(){ a=3; b=4; }void main( ){ fun1 (5,6); fun2(); printf(“%d %dn”,a,b); }程序运行后的输出结果是( )。
A:5 6 1 2
B:3 4 5 6
C:1 2 5 6
D:5 6 3 4
正确答案:【5 6 3 4】
19、单选题:设有如下函数定义int fun(int k){ if (k<1) return 0; else if(k==1)return 1; elsereturn fun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是()。
A:4
B:5
C:2
D:3
正确答案:【3】
20、单选题:有以下程序 #include<stdio.h>int fun() { static int x=1; x+=1; return x; }void main() { int i, s=1; for(i=1;i<=5;i++)s+=fun(); printf(“%dn”,s); } 程序运行后的输出结果是 ()。
A:6
B:21
C:120
D:11
正确答案:【21】
21、单选题:有以下程序#include<stdio.h>int f(int t[],int n);void main( ) { int a[4]={1,2,3,4},s;s=f(a,4); printf(“%dn”,s); }int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0; }程序运行后的输出结果是()。
A:4
B:6
C:10
D:14
正确答案:【10】
22、单选题:有以下程序#include<stdio.h>int f(int x,int y) {return((y-x)*x);}void main( ){int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(“%dn”,d);}程序运行后的输出结果是()。
A:7
B:8
C:9
D:10
正确答案:【9】
23、单选题:有以下程序 #include<stdio.h> int f(int x) {int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } void main() {int z; z=f(3); printf(“%dn”,z); } 程序的运行结果是( )。
A:0
B:8
C:9
D:6
正确答案:【6】
24、单选题:在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A:auto和register
B:extern和register
C:static和register
D:auto和static
正确答案:【auto和register】
25、单选题:有以下程序void f(int b[]){int i; for(i=2;i<6;i++) b[i]*=2;}void main(){int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(a); for(i=0;i<10;i++) printf(“%d,”,a[i]);}程序运行后的输出结果是( )。
A:1,2,3,4,5,6,7,8,9,10,
B:1,2,6,8,10,12,7,8,9,10
C:1,2,3,4,10,12,14,16,9,10,
D:1,2,6,8,10,12,14,16,9,10,
正确答案:【1,2,6,8,10,12,7,8,9,10】
26、单选题:在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则()。
A:称为函数的直接递归调用
B:C语言中不允许这样的递归调用
C:称为函数的循环调用
D:称为函数的间接递归调用
正确答案:【称为函数的间接递归调用】
27、单选题:以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。void f(char p[][10],int n) { char t[20]; int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t);} }void main() { char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”}; int i; f(p,5); printf(“%dn”,strlen(p[0])); } 程序运行后的输出结果是()。
A:4
B:6
C:3
D:5
正确答案:【5】
28、单选题:有如下程序 void f(int x,int y) { int t; if(x<y) {t=x, x=y; } } void main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf(“%d,%d,%dn”,a,b,c); } 执行后输出结果是()。
A:4,3,5
B:5,4,3
C:5,3,4
D:3,4,5
正确答案:【4,3,5】
第七章 单元测试
1、单选题:有以下程序:#include<stdio.h>#define f(x) x*x*xvoid main(){ int a=3,s,t ; s=f(a+1); t=f((a+1)); printf(“%d,%dn”,s,t);}程序运行后的输出结果是( )。
A:10,64
B:64,10
C:10,10
D:64,64
正确答案:【10,64】
2、单选题:有以下程序:#include<stdio.h>#define PT 3.5;#define S(x) PT*x*x;void main(){int a=1, b=2; printf(“%4.1fn” , S(a+b));}程序运行后的输出结果是()。
A:7.5
B:14.0
C:程序有错无输出结果
D:31.5
正确答案:【程序有错无输出结果】
3、单选题:fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下列划线处应该填写的是()。#include <stdio.h>#define N 5viod fun(int x[N]){int m; for(m=N-1;m>=0;m–) scanf(“%d”, );}
A:&x[m+1]
B:&x[++m]
C:
如有任何疑问请及时联系QQ 50895809反馈