第一章 单元测试
1、单选题:C语言是一种( )
A: 汇编语言
B: 高级语言
C: 以上都不是
D: 机器语言
正确答案:【 高级语言】
2、单选题:构成C语言程序的基本单位是( )
A:语句
B:程序行
C:函数
D:字符
正确答案:【函数】
3、单选题:以下不是C语言的特点的是( )
A:语言简洁紧凑
B:能够编制出功能复杂的程序
C:C语言移植性好
D:C语言可以直接对硬件操作
正确答案:【能够编制出功能复杂的程序 】
4、单选题:以下叙述中正确的是( )
A:其余三种说法都不完整
B:程序设计的任务就是确定所用算法
C:程序设计的任务就是确定所用数据结构
D:程序设计的任务就是编写程序代码并上机调试
正确答案:【其余三种说法都不完整】
5、单选题:算法具有五个特性,以下选项中不属于算法特性的是( )
A: 确定性
B: 有效性
C: 简洁性
D: 有穷性
正确答案:【 简洁性】
6、判断题:计算机科学家冯 · 诺依曼曾提出一著名公式:计算机程序=算法+数据结构。( )
A:错
B:对
正确答案:【错】
7、判断题:在程序设计中提到的算法就是“解决问题的方法和步骤”。( )
A:对
B:错
正确答案:【对】
8、判断题:根据计算机解决问题的类型不同,计算机算法一般分为数值运算算法和非数值运算算法两类。( )
A:对
B:错
正确答案:【对】
9、判断题:计算机程序的算法就是解决“做什么”和“怎么做”的问题。( )
A:错
B:对
正确答案:【对】
10、判断题:一般情况下,我们所说的算法是专指使用计算机解决问题的方法和步骤,即计算机算法。( )
A:对
B:错
正确答案:【对】
第二章 单元测试
1、单选题:设有整型变量m值为8,下列赋值语句中,正确的是 ( )。
A:
m=m++;
B:
m+1+=8;
C:
m+1=8;
D:
++m=6;
正确答案:【
m=m++;
】
2、单选题:设字符型变量ch的值为’A’,整型变量m的值为1,假定执行ch=getchar();m=getchar();时,从键盘输入B,则变量ch和m的值分别为( )。
A:’B’和”
B:’B’和’ ‘
C:’A’和’1′
D:’B’和’1’
正确答案:【’B’和”
】
3、单选题:设字符型变量ch的值为’A’,整型变量m的值为’1’,假定执行putchar(m);putchar(‘ ‘);putchar(ch);后,则输出结果是 ( )。
A:1 A
B:A1
C:lA
D:A l
正确答案:【1 A
】
4、单选题:如果用scanf()来输入长整型数据,则正确的格式控制符是 。
A:
%lx
B:
%lD
C:
%d
D:
%x
正确答案:【
%lx
】
5、单选题:如果用printf()来输出双精度型数据、则正确的格式控制符是 。
A:%lf
B:%lg
C:%le
D:%-10.2f
正确答案:【%-10.2f 】
6、单选题:执行语句scanf(“%d,%d”,&m,&n);使m和n的值分别为1和2,正确输入是 。
A:
1
B:
1,2
C:
1 2
D:
12 2
正确答案:【
1,2
】
7、单选题:设整型变量a和b的值分别为8和9。printf(“%d,%d”,(a++,++b),b–);的输出是( )。
A:
8,8
B:
8,7
C:
10,9
D:
9,9
正确答案:【
9,9
】
8、单选题:设有下列程序段,则其正确的输出是( )。
int x=011,y=0x11;
printf(“x=%-3dy=%3d”,x,y);
A:x=11 y=x11
B:口口917口
C:x=口口9y=17口
D:x=9口口y=口17
正确答案:【x=9口口y=口17 】
9、单选题:设字符型变量ch已有值,下列语句中错误的是 。
A:
ch>48&&ch<0x3A
B:
{int ch=6;printf(“%d”,ch);}
C:
scanf(“%c%c”,ch, ch)
D:
5
正确答案:【
scanf(“%c%c”,ch, ch)
】
10、单选题:运行下列程序的输出是 。 main() {int k=1; {int k=2; printf(“%d”,k);} printf(“%d”,k); }
A:12
B:21
C:11
D:22
正确答案:【21】
11、单选题:运行下列程序的输出是 。 main() {char ch=’B’; printf(“%c%d”,ch,ch++); }
A:B65
B:C66
C:B66
D:C65
正确答案:【C66】
第三章 单元测试
1、单选题:已知a,b,c的值分别是1,2,3,则执行下列语句后a,b,c的值分别是( )
if (a++<b ){c=a; a=b; b=c; }
else a=b=c=0;
A:0,0,0
B:1,2,1
C:2,2,2
D:1,2,3
正确答案:【2,2,2】
2、单选题:以下if语句中格式正确的是( )
A:if(a>b) {b++;printf(“%d”,b)}
else{a++;printf(“%d”,a);}
B:if(a>b) {b++;printf (“%d”,b);}
else {a++;printf(“%d”,a);}
C:if(a>b) b++ else a++;
D:if(a>b)b++;printf(“%d”,b);
else printf(“%d”,a);
正确答案:【if(a>b) {b++;printf (“%d”,b);}
else {a++;printf(“%d”,a);}】
3、单选题:若i是int型变量,且有下面的程序片段
i=0;
if(i<=0) printf(“####”)
else printf(“****”);
上面程序片段的输出结果是( )
A:####****
B:####
C:****
D:有语法错误,无输出结果
正确答案:【有语法错误,无输出结果】
4、单选题:有以下程序:#include<stdio.h>
main()
{int x,y; printf(“Enter an integer(x):”);
scarf(“%d”,&x);
if(x++<0) y=-1;
else if(x==0) y=0;else y=1; printf(“%d”,y);}
现从键盘上输入-1,则程序的输出是( )。
A:-1
B:0
C:1
D:不确定的值
正确答案:【-1】
5、单选题:若执行下面的程序时从键盘上输入10,则输出是( )
main()
{int a;scanf(“%d”,&a);if(a++>10)
printf(“%dn”,++a);
else printf(“%dn”,a–); }
A:9
B:10
C:12
D:11
正确答案:【11
】
6、单选题:下面程序的输出结果是( )。
#include<stdio.h>
main()
{int i=2,p;p=f(i,i+1);
printf(“%d”,p); }
int f(a,b)
int a,b;
{int c; c=a;
if(a>b) c=1;
else
if(a==b)c=0; else c=-1;
return(c); }
A:1
B:2
C:0
D:-1
正确答案:【-1】
7、单选题:请读程序:#include<stdio.h>
main()
{int x=l,y=0,a=0,b=0;
switch(x)
{case l:switch(y)
{case 0: a++; break;
case 1:b++;break;}
case 2:a++;b++; break;}
printf(“a=%d, b=%dn”,a,b);}上面程序的输出结果是( )
A:a=l,b=l
B:a=l,b=0
C:a=2,b=2
D:a=2,b=l
正确答案:【a=2,b=l】
8、单选题:有以下程序:#include<stdio.h> .
main()
{int al=0,a2=0,a3=0;
char ch;
while((ch=getchar())!=’n’)
switch(ch)
{case ‘A’:a1++;
case ‘B’:a2++;
default:a3++; }
printf(“%d,%d,%d”,a1,a2,a3);}
现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是( )
A:5,3,9
B:5,3,1
C:5,8,9
D:5,8,1
正确答案:【5,8,9】
9、单选题:若要求表示a不等于0的关系,错误的表达式是( )
A:a<0| |a>0
B:a<>0
C:a
D:a!=0
正确答案:【a<>0】
10、单选题:程序的三种基本结构是( )。
A:顺序结构,循环结构,选择结构
B:顺序结构,选择结构,递归结构
C:选择结构,循环结构,递归结构
D:顺序结构,循环结构,递归结构
正确答案:【顺序结构,循环结构,选择结构】
11、单选题:C语言中,逻辑真表示为( )。
A:’y’或’Y’
B:1
C:TRUE
D:非零值
正确答案:【1】
12、单选题:已知a,b,c,w时int型变量,a,b均以赋值,且满足a<b,先有以下程序段:scanf (“%d”,&c);
w=a;
if (w<=b) w=b;
if (w<=c) printf (“%d”,w);
else w=c;
为把c的值放入w中,则执行此程序段时,从键盘输入的c的值不应取的范围是( )。
A:c>=b
B:c>a或c<b
C:c>a且c<b
D:b>c
正确答案:【c>=b】
13、单选题:设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:switch(ch)
{ case’+’:w=a+b;break;
case’-‘:w=a-b;break;
case’*’:w=a*b;break;
case’/’:w=a/b;break;}
在下列写法中,错误的是( )
A:
if(ch= =’*’) w=a*b;
else if(ch= =’/’) w=a/b;
if(ch= =’+’) w=a+b;
else if(ch= =’-‘) w=a-b;
B:
if(ch= =’+’) w=a+b;
else if(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
else w=a/b;
C:
if(ch= =’+’) w=a+b;
if(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
if(ch= =’/’) w=a/b;
D:
if(ch= =’+’) w=a+b;
elseif(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
else if(ch= =’/’) w=a/b;
正确答案:【
if(ch= =’+’) w=a+b;
else if(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
else w=a/b;
】
14、单选题:以下程序的输出结果是( ) #include<stdio.h>
main()
{ int a=0,b=l,c=0,x=0,y=0;
if(x<=y)
if(y=l0)
if(!b) a=1;
else if(c) a=10;
a=-1;
printf(“%d”,a);}
A:1
B:10
C:不确定的值
D:-1
正确答案:【-1】
第四章 单元测试
1、单选题:分析下面的C语言代码:int a=1,b=10;
do{
b-=a;a++;
}while (b–<0);
则执行循环语句后b的值为( )
A: -1
B: -2
C: 9
D: 8
正确答案:【 8】
2、单选题:C语言中,while和do…while循环的主要区别是( )
A: do…while的循环体不能是复合语句
B: do…while的循环体可以无条件执行一次
C: while的循环控制条件比do…while的循环控制条件严格
D: do…while允许从外部转到循环体内
正确答案:【 do…while的循环体可以无条件执行一次】
3、单选题:研究下面的C程序段:int i,j;
for (i=5;i;i–)
for(j=0;j<4;j++){…}
循环体的总执行次数是( )
A: 30
B: 25
C: 20
D: 24
正确答案:【 20】
4、单选题:分析下面的C代码段:
char str1[15]=”Sea View”;
char str2[15]=”Sea Breeze”;
strcpy(str1,str2);
printf(“%sn”,str1);
则输出结果是( )
A: Sea View Sea Breeze
B: Sea View
C: Sea Breeze Sea View
D: Sea Breeze
正确答案:【 Sea Breeze 】
5、单选题:下面有关for循环的正确描述是( )
A: for循环只能用于循环次数已经确定的情况
B: 在for循环中,不能用break语句跳出循环体
C: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
D: for循环是先执行循环体语句,后判断表达式
正确答案:【 for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来】
6、单选题:若i为整型变量,则以下循环执行次数是( )
for(i=2;i==0;) printf(“%dn”,i–);
A: 2次
B: 0次
C: 无限次
D: 1次
正确答案:【 0次】
7、单选题:以下程序运行后,输出的结果是( )
main()
{ int i, j ,sum=0;
for (i=5;i;i–)
for (j=0;j<3;j++)
sum++;
printf(“%d”,sum);
}
A:12
B:3
C:15
D:5
正确答案:【15】
8、单选题:下面程序的运行结果是( )void main(){ int i; for(i=1;i<=5;i++) { if(i%2) printf(“*”); else continue; printf(“#”);}printf(“$n”);}
A:*#*#*#$
B:#*#*$
C:#*#*#*$
D:*#*#$
正确答案:【*#*#*#$】
第五章 单元测试
1、单选题:以下对一维数组a的正确说明是:( )
A: int k=5,a[k];
B: char a[3]={‘a’,’b’,’c’};
C: int a[];
D: char a(10);
正确答案:【 char a[3]={‘a’,’b’,’c’};】
2、单选题:已知:int a[10]; 则对a数组元素的正确引用是( )
A: a[3.5]
B: a[0]
C: a(5)
D: a[10]
正确答案:【 a[0]】
3、单选题:下述对C语言字符数组的描述中正确的是( )
A: 一维字符数组的第一个元素是其下标为1的元素
B: 任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
C: 一维字符数组的元素在引用时其下标大小没有限制
D: 任何一个一维字符数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
正确答案:【 任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间】
4、单选题:若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( )
A: 2
B: 3
C: 无确定值
D: 4
正确答案:【 3】
5、单选题:对二维数组的正确定义是( )
A: int a[2] [ ]={1,2,3,4,5,6};
B: int a[ ] [3]={1,2,3,4,5,6};
C: int a[2,3]={1,2,3,4,5,6};
D: int a[ ] [ ]={1,2,3,4,5,6};
正确答案:【 int a[ ] [3]={1,2,3,4,5,6}; 】
6、单选题:已知int a[3][4];则对数组元素引用正确的是( )
A: a[2][0]
B: a[2][4]
C: a[1,3]
D: a(2)(1)
正确答案:【 a[2][0] 】
7、单选题:合法的数组定义是( )
A: char a={‘U’, ‘V’, ‘W’,’X’, ‘Y’};
B: char a[5]= “ABCDE”;
C: char a[5]={“A”,”A”, “A”,”A”,”A”};
D: char a[6]= {‘A’,’B’,’C’,’D’,’E’};
正确答案:【 char a[6]= {‘A’,’B’,’C’,’D’,’E’}; 】
8、单选题:以下程序段的输出结果是( )
char s[]=”113vwxyzx41″;
printf(“%dn”,strlen(s));
A: 3
B: 8
C: 7
D: 10
正确答案:【 7】
9、单选题:以下程序运行后,输出结果是( )
void main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf(“%d%d%d%dn”,a[0][3],a[1][2],a[2][1],a[3][0]);
}
A:0650
B:输出值不定
C:5430
D:1470
正确答案:【0650 】
10、单选题:若有以下定义和语句:char s1[]=”abced”,s2[]=”abcd”;
printf(“%dn”,strlen(strcpy(s1,s2)));
则输出结果是:( )
A: 4
B: 9
C: 5
D: 10
正确答案:【 4】
第六章 单元测试
1、单选题:一个C语言程序总是从( )开始执行的。
A: 书写顺序的第一个函数
B: 不确定
C: 主函数main
D: 书写顺序的第一条执行语句
正确答案:【 主函数main 】
2、单选题:在 C 语言中,有关函数的说法,以下正确的是( )
A: 函数可嵌套定义,也可嵌套调用
B: 函数可嵌套定义,但不可嵌套调用
C: 函数不可嵌套定义,但可嵌套调用
D: 函数不可嵌套定义,也不可嵌套调用
正确答案:【 函数不可嵌套定义,但可嵌套调用 】
3、单选题:调用函数的实参与被调用函数的形参应有如下关系( )
A: 只要求实参与形参个数相等
B: 只要求实参与形参顺序相同
C: 只要求实参与形参数据类型相同
D: 上述三点均应具备
正确答案:【 上述三点均应具备】
4、单选题:为了判断两个字符串s1和s2是否相等,应使用( )
A: if(strcpy(s1,s2))
B: if(strcmp(s1,s2)= = 0)
C: if(s1==s2)
D: if(s1=s2)
正确答案:【 if(strcmp(s1,s2)= = 0) 】
5、单选题:以下4个字符串函数中,与其他3个所在的头文件不同是( )
A: printf
B: putchar
C: strcmp
D: scanf
正确答案:【 strcmp】
6、单选题:若用数组名作为函数调用的实参,传递给形参的是( )
A: 数组中的全部元素的值
B: 数组元素的个数
C: 数组的首地址
D: 数组中第一个元素的值
正确答案:【 数组的首地址】
7、单选题:以下正确的说法是( )
A: 形参是虚拟的,不占用存储单元
B: 有当实参和与其对应的形参同名时才共占用相同的存储单元
C: 实参和与其对应的形参各占用独立的存储单元
D: 实参和与其对应的形参共占用一个存储单元
正确答案:【 实参和与其对应的形参各占用独立的存储单元】
8、单选题:关于函数声明,以下不正确的说法是( )
A: 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
B: 标准库不需要函数原型声明
C: 如果函数定义出现在函数调用之前,可以不必加函数原型声明
D: 函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
正确答案:【 函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查】
9、单选题:以下叙述中正确的是( )
A: 宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。
B: 源程序中所有的行都参加编译。
C:其余选项都不正确。
D: 宏定义常量与const定义常量是一样的。
正确答案:【 宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。】
10、单选题:凡在函数中未指定存储类别的变量,其隐含的存储类别是( )
A: 寄存器
B: 外部
C: 自动
D: 静态
正确答案:【 自动 】
11、单选题:在源程序的一个文件中定义的全局变量的作用域是( )
A: 一个函数的范围
B: 从定义该变量的位置开始至该文件的结束
C: 在本文件的全部范围
D: 该程序的全部范围
正确答案:【 从定义该变量的位置开始至该文件的结束】
12、单选题:下列程序的输出结果是( )
#include<stdio.h>
int abc(int u,int v)
{ int w;
while(v) { w=u%v; u=v; v=w; }
return u;
}
main()
{ int a=24,b=16,c;
c=abc(a,b);
printf(“%dn”,c);
}
A: 4
B: 8
C: 6
D: 5
正确答案:【 8】
13、单选题:函数调用可以在( )
A: 函数参数中
B: 以上都是
C: 函数语句中
D: 函数表达式中
正确答案:【 函数参数中】
14、单选题:以下不正确的叙述是( )
A: 宏名无类型
B: 宏替换不占用运行时间
C: 宏名必须用大写字母表示
D: 宏替换只是字符替换
正确答案:【 宏名必须用大写字母表示】
15、单选题:C语言的编译系统对宏命令的处理( )
A: 在对源程序中其它语句正式编译之前进行的
B: 在程序连接时进行
C: 在程序运行时进行的
D: 和C程序中的其它语句同时进行编译的
正确答案:【 在对源程序中其它语句正式编译之前进行的】
16、判断题:全局类型的变量作用范围大,因此编程中应尽量使用全局变量,少使用局部变量。()
A:错
B:对
正确答案:【错】
17、判断题:形参只有在被调用时才分配存储空间。( )
A:对
B:错
正确答案:【对】
18、判断题:形参可以是常量、变量或表达式。( )
A:错
B:对
正确答案:【错】
19、判断题:宏替换时先求出实参表达式的值,然后代入形参运算求值。( )
A:对
B:错
正确答案:【错】
20、判断题:调用函数只能得到一个返回值,而用宏可以得到几个结果。( )
A:错
B:对
正确答案:【错】
21、判断题:在宏定义#define PI 3.l4l59中,如果将1误输成小写的L,则编译时不出错,运行时出错。( )
A:错
B:对
正确答案:【对】
第七章 单元测试
1、单选题:指针变量是把内存中另一个数据的()作为其值的变量。
A:变量名
B:
地址
C:
值
D:
标识符
正确答案:【
地址
】
2、单选题:有以下程序段,输出结果为()。#include<stdio.h>main(){int a[10]={11,32,43,25,16,71,24,23,80,44};int *p=a;int *s,;s=p+2; printf(“%d,%d “,*p,*s);}
A:
0,2
B:
11,13
C:
11,32
D:
11,43
正确答案:【
11,43
】
3、单选题:有以下程序段,输出结果为()。#include<stdio.h>main(){int a[10]={5,10,15,20,25,30,35,40,45,50};int *p=a;int *s, m;s=p++;m=*p++; printf(“%d,%d,%d ”, *p, *s, m);}
A:
10,15,11
如有任何疑问请及时联系QQ 50895809反馈