澜柑梁卷侨惮成馈茄土糠倒皮
第一章 单元测试
1、
C语言是一种( )
A: 以上都不是
B: 高级语言
C: 机器语言
D: 汇编语言
答案: 高级语言
2、
构成C语言程序的基本单位是( )
A:语句
B:函数
C:程序行
D:字符
答案: 函数
3、
以下不是C语言的特点的是( )
A:语言简洁紧凑
B:C语言移植性好
C:C语言可以直接对硬件操作
D:能够编制出功能复杂的程序
答案: 能够编制出功能复杂的程序
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+1=8;
B:
m=m++;
C:
m+1+=8;
D:
++m=6;
答案:
m=m++;
2、
设字符型变量ch的值为’A’,整型变量m的值为1,假定执行ch=getchar();m=getchar();时,从键盘输入B,则变量ch和m的值分别为( )。
A:’A’和’1′
B:’B’和’1′
C:’B’和”
D:’B’和’ ‘
答案: ‘B’和”
3、
设字符型变量ch的值为’A’,整型变量m的值为’1’,假定执行putchar(m);putchar(‘ ‘);putchar(ch);后,则输出结果是 ( )。
A:lA
B:A l
C:A1
D:1 A
答案: 1 A
4、
如果用scanf()来输入长整型数据,则正确的格式控制符是 。
A:
%lD
B:
%d
C:
%x
D:
%lx
答案:
%lx
5、
如果用printf()来输出双精度型数据、则正确的格式控制符是 。
A:%le
B:%-10.2f
C:%lg
D:%lf
答案: %-10.2f
6、
执行语句scanf(“%d,%d”,&m,&n);使m和n的值分别为1和2,正确输入是 。
A:
1,2
B:
1
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:
9,9
D:
10,9
答案:
9,9
8、
设有下列程序段,则其正确的输出是( )。
int x=011,y=0x11;
printf(“x=%-3dy=%3d”,x,y);
A:x=9口口y=口17
B:x=11 y=x11
C:口口917口
D:x=口口9y=17口
答案: x=9口口y=口17
9、
设字符型变量ch已有值,下列语句中错误的是 。
A:
scanf(“%c%c”,ch, ch)
B:
{int ch=6;printf(“%d”,ch);}
C:
5
D:
ch>48&&ch<0x3A
答案:
scanf(“%c%c”,ch, ch)
10、
运行下列程序的输出是 。 main() {int k=1; {int k=2; printf(“%d”,k);} printf(“%d”,k); }
A:12
B:22
C:11
D:21
答案: 21
11、
运行下列程序的输出是 。 main() {char ch=’B’; printf(“%c%d”,ch,ch++); }
A:C65
B:B65
C:B66
D:C66
答案: 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:1,2,1
B:0,0,0
C:1,2,3
D:2,2,2
答案: 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++;printf(“%d”,b);
else printf(“%d”,a);
D:if(a>b) b++ else 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:不确定的值
C:1
D:0
答案: -1
5、
若执行下面的程序时从键盘上输入10,则输出是( )
main()
{int a;scanf(“%d”,&a);if(a++>10)
printf(“%dn”,++a);
else printf(“%dn”,a–); }
A:11
B:9
C:10
D:12
答案: 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:0
B:-1
C:2
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=0
B:a=2,b=2
C:a=l,b=l
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,1
B:5,3,9
C:5,8,9
D:5,8,1
答案: 5,8,9
9、
若要求表示a不等于0的关系,错误的表达式是( )
A:a
B:a<>0
C:a<0| |a>0
D:a!=0
答案: a<>0
10、
程序的三种基本结构是( )。
A:顺序结构,循环结构,选择结构
B:选择结构,循环结构,递归结构
C:顺序结构,循环结构,递归结构
D:顺序结构,选择结构,递归结构
答案: 顺序结构,循环结构,选择结构
11、
C语言中,逻辑真表示为( )。
A:TRUE
B:非零值
C:1
D:’y’或’Y’
答案: 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>a且c<b
B:c>=b
C:b>c
D:c>a或c<b
答案: 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;
elseif(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
else if(ch= =’/’) w=a/b;
D:
if(ch= =’+’) w=a+b;
if(ch= =’-‘) w=a-b;
if(ch= =’*’) w=a*b;
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:-1
D:不确定的值
答案: -1
第四章 单元测试
1、
分析下面的C语言代码:
int a=1,b=10;
do{
b-=a;a++;
}while (b–<0);
则执行循环语句后b的值为( )
A: -1
B: 9
C: 8
D: -2
答案: 8
2、
C语言中,while和do…while循环的主要区别是( )
A: do…while的循环体不能是复合语句
B: do…while的循环体可以无条件执行一次
C: do…while允许从外部转到循环体内
D: while的循环控制条件比do…while的循环控制条件严格
答案: do…while的循环体可以无条件执行一次
3、
研究下面的C程序段:
int i,j;
for (i=5;i;i–)
for(j=0;j<4;j++){…}
循环体的总执行次数是( )
A: 25
B: 24
C: 30
D: 20
答案: 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 Breeze Sea View
C: Sea Breeze
D: Sea View
答案: Sea Breeze
5、
下面有关for循环的正确描述是( )
A: 在for循环中,不能用break语句跳出循环体
B: for循环只能用于循环次数已经确定的情况
C: for循环是先执行循环体语句,后判断表达式
D: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
答案: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
6、
若i为整型变量,则以下循环执行次数是( )
for(i=2;i==0;) printf(“%dn”,i–);
A: 1次
B: 0次
C: 无限次
D: 2次
答案: 0次
7、
以下程序运行后,输出的结果是( )
main()
{ int i, j ,sum=0;
for (i=5;i;i–)
for (j=0;j<3;j++)
sum++;
printf(“%d”,sum);
}
A:3
B:15
C:12
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: char a[3]={‘a’,’b’,’c’};
B: char a(10);
C: int a[];
D: int k=5,a[k];
答案: 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: 一维字符数组的元素在引用时其下标大小没有限制
B: 任何一个一维字符数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
C: 任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
D: 一维字符数组的第一个元素是其下标为1的元素
答案: 任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
4、
若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( )
A: 2
B: 无确定值
C: 3
D: 4
答案: 3
5、
对二维数组的正确定义是( )
A: int a[2] [ ]={1,2,3,4,5,6};
B: int a[2,3]={1,2,3,4,5,6};
C: int a[ ] [ ]={1,2,3,4,5,6};
D: int a[ ] [3]={1,2,3,4,5,6};
答案: int a[ ] [3]={1,2,3,4,5,6};
6、
已知int a[3][4];则对数组元素引用正确的是( )
A: a[1,3]
B: a[2][4]
C: a[2][0]
D: a(2)(1)
答案: a[2][0]
7、
合法的数组定义是( )
A: char a={‘U’, ‘V’, ‘W’,’X’, ‘Y’};
B: char a[5]={“A”,”A”, “A”,”A”,”A”};
C: char a[5]= “ABCDE”;
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: 7
C: 8
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:5430
B:0650
C:输出值不定
D:1470
答案: 0650
10、
若有以下定义和语句:
char s1[]=”abced”,s2[]=”abcd”;
printf(“%dn”,strlen(strcpy(s1,s2)));
则输出结果是:( )
A: 4
B: 5
C: 10
D: 9
答案: 4
上方为免费预览版答案,如需购买完整答案,请点击下方红字
为了方便下次阅读,建议在浏览器添加书签收藏本网页
添加书签方法:
1.电脑按键盘的Ctrl键+D键即可收藏本网页
2.手机浏览器可以添加书签收藏本网页
我们的公众号
打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP
本公众号可查看各种网课答案,还可免费查看大学教材答案
滑海罐勺歪示心踞裂捎褥容嗡