第一章 单元测试
1、单选题:
C语言是一种( )。
选项:
A:高级语言
B:机器语言
C:
低级语言
D:汇编语言
答案: 【高级语言】
2、单选题:
C语言程序总是从( )。
选项:
A:源代码的第一行
B:
源代码的第一条可执行语句
C:
主函数
D:
源代码的第一个函数
答案: 【
主函数
】
3、单选题:
C语言程序是由( )构成。
选项:
A:
一个主函数和若干函数
B:
若干过程
C:
若干对象
D:
若干子程序
答案: 【
一个主函数和若干函数
】
4、单选题:
在C语言程序中,主函数的位置( )。
选项:
A:
一定放在所有代码中间
B:
一定放在所有代码最后
C:
一定放在所有代码最前面
D:
可以放在代码的任何位置
答案: 【
可以放在代码的任何位置
】
5、单选题:
以下叙述正确的是( )。
选项:
A:
C语言程序一行只能写一条语句
B:
C语言程序不区分大小写
C:
C语言程序每个语句结束都要写分号
D:
C语言程序每行结束都要写分号
答案: 【
C语言程序每个语句结束都要写分号
】
6、单选题:
要把高级语言编写的源程序转换为目标程序,需要使用( )。
选项:
A:
编辑程序
B: 诊断程序
C: 驱动程序
D: 编译程序
答案: 【 编译程序】
7、单选题:
若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量 a、b、c 的语句是( )。
选项:
A:scanf(“%d%d%d”,&a,&b,&c);
B:scanf(“%d%d%d”,a,b,c);
C:scanf(“%d%d%d”,a,b,*c)
D:scanf(“%d%d%d”,&a,&b,c);
答案: 【scanf(“%d%d%d”,&a,&b,&c);】
8、单选题:
以下选项中合法的用户标识符是( )。
选项:
A:
dat
B:
_2Test
C:long
D:
3Dmax
答案: 【
_2Test
】
9、单选题:
下列说法中正确的是( )。
选项:
A:
C 程序书写时,不区分大小写字母
B: C 程序书写时,一个语句可分成几行书写
C: C 程序书写时,一行只能写一个语句
D: C 程序书写时每行必须有行号
答案: 【 C 程序书写时,一个语句可分成几行书写】
10、单选题:
英文小写字母 d 的 ASCII 码为 100,英文大写字母 D的 ASCII 码为( )。
选项:
A:68
B:50
C:52
D:66
答案: 【68】
第二章 单元测试
1、单选题:
C语言中的注释( )。
选项:
A:
不运行
B:
其他情况
C:
运行
D:
有的运行有的不运行
答案: 【
不运行
】
2、单选题:
设变量定义为“int a, b;”,执行下列语句时,输入( ),则a和b的值都是10。scanf(“a=%d, b=%d”,&a, &b);
选项:
A:
10 10
B:
a=10, b=10
C:
10, 10
D:
a=10 b=10
答案: 【
a=10, b=10
】
3、单选题:
( )是不正确的字符常量。
选项:
A:
’n’
B:’1’
C:”a”
D:’’
答案: 【”a” 】
4、单选题:
若变量已正确定义并赋值,表达式( )错误。
选项:
A:
a*b/c
B:
3.14%2
C:
a/b/c
D:
2,b
答案: 【
3.14%2
】
5、单选题:
( )是合法的用户自定义标示符。
选项:
A:
_isw
B:
float
C:
<fr>
D:
b-b
答案: 【
_isw
】
6、单选题:
( )是 C 语言提供的合法的数据类型关键字。
选项:
A:integer
B:Float
C:Char
D:signed
答案: 【integer】
7、单选题:
在 C 语言中,要求参加运算的数必须时整数的运算符是( )。
选项:
A:=
B:%
C:*
D:/
答案: 【% 】
8、单选题:
与代数式(x*y)/(u*v)不等价的 C 语言表达式是( )。
选项:
A:x/(u*v)*y
B:x*y/u/v
C:x*y/(u*v)
D:x*y/u*v
答案: 【x*y/u*v】
9、单选题:
对于 char cx=’9′;语句,正确的是( )。
选项:
A:cx 的 ASCII 值是 33
B:cx 的值为三个字符
C:cx 的值为四个字符
D:不合法
答案: 【不合法 】
10、单选题:
若 int k=7,x=12;则能使值为 3 的表达式是( )。
选项:
A:x%=(k%=5)
B:x%=k-k%5
C:(x%=k)-(k%=5)
D:x%=(k-k%5)
答案: 【(x%=k)-(k%=5) 】
第三章 单元测试
1、单选题:
若变量已正确定义,表达式( )的值不是2。
选项:
A:
a=2
B:
1<1+1
C:
7/3
D:
5%3
答案: 【
】
2、单选题:
在 C 程序中,用( )表示逻辑值“真”。
选项:
A:
0
B:
大于1的数
C:
非 1 的数
D:
非 0 的数
答案: 【
】
3、单选题:
下面程序的正确输出结果是( )。main(){ int a=2,b=-1,c=2; if(a<b) if(b<0) c=1; else c++; printf(“%d”,c);}
选项:
A:0
B:1
C:3
D:2
答案: 【 】
4、单选题:
下面程序的正确输出结果是( )。main(){ int a=1,b=3,c=5,d=4,x; if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7; printf(“%d”,x);}
选项:
A:3
B:0
C:2
D:6
答案: 【
5、单选题:
下面程序的正确输出结果是( )。main(){ int x=1,y=0,a=0,b=0; switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
} case 2:a++;b++;break; case 3:a++;b++; } printf(“%d %dn”,a,b);}
选项:
A:2 1
B:1 0
C:1 1
D:2 2
答案: 【】
6、单选题:
能正确表示”当 x 的值在[1,10]和[200,210]范围内为真,否则为假”的是( )。
选项:
A:(x>=1)|| (x<=10) || (x>=200) || (x<=210)
B:(x>=1)&& (x<=10) && (x>=200) || (x<=210)
C:(x>=1)&& (x<=10) || (x>=200) && (x<=210)
D:(x>=1)|| (x<=10) && (x>=200) || (x<=210)
答案: 【】
7、单选题:
判断 char 型变量 ch 是否为大写字母的正确表达式是( )。
选项:
A: ‘A'<=ch<=’Z’
B: (ch>=’A’) && (ch<=’Z’)
C: (ch>=’A’) & (ch<=’Z’)
D: (‘A'<=ch) AND (‘Z’>=ch)
答案: 【 】
8、单选题:
请阅读以下程序:main(){int a=5, b=0, c=0;if (a=b+c) printf(“***”);else printf(“$$$”);}以上程序( )。
选项:
A:输出$$$
B:有语法错误不能通过编译
C:可以通过编译但不能通过连接
D:输出***
答案: 【】
9、单选题:
阅读以下程序,程序运行后, 如果从键盘上输人 5,则输出结果是( )。main( ){int x; scanf(“%d”,&x);if(x–<5) printf(“%d”,x);else printf(“%d”,x++);}
选项:
A:3
B:6
C:4
D:5
答案: 【】
10、单选题:
若执行以下程序时从键盘上输入 9,则输出结果是( )
选项:
A:11
B:8
C:9
D:10
答案: 【】
第四章 单元测试
1、单选题:
下列for循环语句书写格式中,错误的是( )
选项:
A:for(i=9;i<20;i++) {…… }
B:for(i=9;i>1;i–); {…… }
C:i=9; for(;i<20;i++) {…… }
D:i=9;for(;i>=1;) { i–; }
答案: 【】
2、单选题:
程序执行后输出的结果是:void main(){ int i; for(i=1;i<20;i=i+2) printf(“%d “,i);}
选项:
A:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
B:1 3 5 7 9 11 13 15 17 19
C:2 4 6 8 9 10 12 14 16 18
D:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
答案: 【】
3、单选题:
求0+5+10+15+…+55的结果,下列循环语句中条件设置正确的是( )
选项:
A:int a=0,s=0; do { s=s+a; a=a+5; }while(a<=55);
B:int a,s=1; for(a=0;a<=55;a++) { s=s+a; }
C:int a=1,s=0; while(a<55){ s=s+a; a++;}
D:int a,s=0; for(a=0;a<55;a=a+5) { s=s+a;}
答案: 【】
4、单选题:
关于循环嵌套的描述,错误的是( )
选项:
A:
走得慢的循环放在外层,走得快的放内层
B:
内层循环每走一步,外层循环走一圈
C:
外层循环每走一步,内层循环走一圈
D:
循环次数=外层循环次数 * 内层循环次数
答案: 【
】
5、单选题:
关于break语句和continue语句的使用结果,正确的是( )
选项:
A:int a=1; while(a<10) { while(a>6){ continue; } printf(“%d “,a); a++;} 执行结果是 1 2 3 4 5 6 7 8 9
B:int a=1; for(;a<10;a++) { if(a%3==0) continue; printf(“%d “,a);} 执行结果是 1 2 4 5 7 8
C:int a=1; for(;a<10;a++) { if(a%3==0) break; printf(“%d “,a);} 执行结果是 1 2 3
D:int a=1; while(a<10) { while(a>6){ break; } printf(“%d “,a); a++;} 执行结果是 1 2 3 4 5 6
答案: 【int a=1; for(;a<10;a++) { if(a%3==0) continue; printf(“%d “,a);} 执行结果是 1 2 4 5 7 8】
6、单选题:
以下程序的输出结果是( )main(){int x=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d,%d”,x–,y);}
选项:
A:10,9 9,0
B:9,8 7,6
C:10,10 9,1
D:10,1 9,2
答案: 【】
7、单选题:
以下程序的输出结果是( )main( ){ int n=4;while(n–) printf(“%d “,–n); }
选项:
A:2 1 0
B:2 0
C:3 2 1
D:3 1
答案: 【】
8、单选题:
以下程序的输出结果是( )main( ){int i;for(i=1;i<6;i++){if(i%2){ printf(“#”);continue;}printf(“*”);}}
选项:
A:#*#*#
B:*#*#*
C:#####
D:*****
答案: 【
9、单选题:
以下循环体的执行次数是( )main( ){int i,j;for(i=0,j=1; i<=j+1; i+=2, j–)printf(“%d “,i);}
选项:
A:1
B:3
C:0
D:2
答案: 【】
10、单选题:
以下程序段的执行结果是( )int a,y; a=10;y=0;do{a+=2;y+=a;printf(“a=%d y=%d”,a,y);if(y>20) break;}while(a=14);
选项:
A:a=12 y=12a=14 y=26
B:a=12 y=12a=14 y=44
C:a=12 y=12
a=14 y=16
a=16 y=20
D:a=12 y=12
a=16 y=28
a=18 y=24
答案: 【
】
第五章 单元测试
1、单选题:
C语言引用数组元素时,其数组下标的数据类型允许是( )。
选项:
A:
任何类型的表达式
B:
整型表达式
C:
整型常量
D:
整型常量或整型表达式
答案: 【
】
2、单选题:
下面正确的定义语句是( )。
选项:
A:int a [3]={1,2,3,4,5};
B:double y[][3]=0;
C:long b[2][3]={{1},{1,2},{1,2,3}}
D:float x[3][2]= {{1},{2},{3}}
答案: 【】
3、单选题:
int a[10];则对a数组元素的正确引用是( )。
选项:
A:a [10]
B:a [10-10]
C:a [3.5]
D:a(5)
答案: 【】
4、单选题:
下面的程序有错误,发生在( )。
main(){ float a[3]={3*0}; int i; for(i=0;i<3;i++) scanf(“%d”,&a[i]); for(i=1;i<3;i++) a[0]=a[0]+a[i]; printf(“%d”,a[0]);}
选项:
A:
没有错误
B:
第五行
C:
第三行
D:
第七行
答案: 【
】
5、单选题:
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。
选项:
A:i*m+j+1
B:i*m+j-1
C:j*m+i
D:i*m+j
答案: 【】
6、单选题:
int a[4]={5,3,8,9};其中 a[3]的值为( )。
选项:
A:8
B:5
C:3
D:9
答案: 【 】
7、单选题:
以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。
选项:
A:strcmp
B:strlen
C:gets
D:strcpy
答案: 【】
8、单选题:
对字符数组进行初始化,( )形式是错误。
选项:
A:char c3[ ]={ ‘1’, ‘2’, ‘3’, ”};
B:char c2[ ]=123;
C:char c4[ ]=”123″;
D:char c1[ ]={‘1’, ‘2’, ‘3’};
答案: 【】
9、单选题:
若有以下说明,则数值为 4 的表达式是( )。int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
选项:
A:a[g-c]
B:a[‘d’-‘c’]
C:a[4]
D:a[‘d’-c]
答案: 【】
10、单选题:
下列定义的字符数组中,输出 printf(“%s”, str[2]) ;的输出是( )。 static str[3][20] ={ “basic”, “foxpro”, “windows”};
选项:
A:输出语句出错
B:basic
C:windows
D:foxpro
答案: 【
第六章 单元测试
1、单选题:
下列程序的输出结果是( )。fun(int a, int b, int c) { c =a*b; } void main( ) {
int c;
fun(2,3,c);
printf(”%d”,c);
}
选项:
A:
6
B:
0
C:
1
D:
无法确定
答案: 【
】
2、单选题:
C语言中,函数返回值的类型是由( )。
选项:
A:
return语句中的表达式类型所决定
B:
调用该函数是系统决定
C:
在定义该函数时所指定的函数类型所决定
D:
调用该函数时的主调函数类型所决定
答案: 【
】
3、单选题:
以下不正确的说法是( )。
选项:
A:
实参可以是常量、变量或表达式
B:
如果形参和实参的类型不一致,以形参类型为准
C:
形参可以是常量、变量或表达式
D:
实参和形参的个数要一致
答案: 【
】
4、单选题:
以下正确的说法是( )。
选项:
A:
函数的定义可以嵌套,函数的调用不可以嵌套
B:
函数的定义和调用都可以嵌套
C:
函数的定义和调用都不可以嵌套
D:
函数的定义不可以嵌套,函数的调用可以嵌套
答案: 【
】
5、单选题:
以下正确的函数定义是( )。
选项:
A:
double fun(int x,int y)
{ z=x+y; return z;}
B:double fun(int x, y)
{ int z; return z;}
C:fun(x,y)
{ int x,y;double z;
z=x+y; return z;}
D:double fun(int x,int y)
{ double z; return z;}
答案: 【
】
6、单选题:
以下关于函数的叙述中不正确的是( )。
选项:
A:
C程序是函数的集合,包括标准库函数和用户自定义函数
B:
在C语言程序中,函数的调用可以嵌套
C:
在C语言程序中,函数的定义不能嵌套
D:
在C语言程序中,被调用的函数必须在main函数中定义
答案: 【
】
7、单选题:
在一个C程序中,( )。
选项:
A:
main函数必须出现在所有函数之前
B:
main函数必须出现在所有函数之后
C:
main函数必须出现在固定位置
D:
main函数可以在任何地方出现
答案: 【
】
8、单选题:
若在C语言中未说明函数的类型,则系统默认该函数的数据类型是( )。
选项:
A:int
B:long
C:float
D:double
答案: 【 】
9、单选题:
C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是( )。
选项:
A:
同名的局部变量
B:
参数的形实结合
C:
函数返回值
D:
全局变量
答案: 【
】
10、单选题:
定义一个void型函数意味着调用该函数时,函数( )。
选项:
A:
返回一个不确定的值
B:
返回一个系统默认值
C:
通过return返回一个用户所希望的函数值
D:
没有返回值
答案: 【
】
第七章 单元测试
1、单选题:
若需要建立如图所示的存储结构,且已有说明double *p, x=0.2345; 则正确的赋值语句是( )。
选项:
A:*p=x;
B:*p=&x;
C:p=x;
D:p=&x;
答案: 【】
2、单选题:
若有说明语句:int a, b, c, *d;c=100;d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是( )。
选项:
A:scanf(“%d,%d,%d”, &a, &b, &d);
B:scanf(“%d,%d,%d”, a, b,*d);
C:scanf(“%d,%d,%d”, a, b, d);
D:scanf(“%d,%d,%d”, &a, &b, d);
答案: 【】
3、单选题:
下面代码 #include<stdio.h> void main(){ int a = 511; int *b; b = &a; printf(“%p”, b); }的输出结果为:
选项:
A:
无确定值
B:
511
C:
a的地址
D:
512
答案: 【
】
4、单选题:
下面程序段的运行结果是( )。 char *s=”abcde”; s+=2; printf(“%d”, *s);
选项:
A:
字符’c’
B:
字符’c’的地址
C:
无确定的输出结果
D:
cde
答案: 【
】
5、单选题:
下列程序的输出结果是( )。#include “stdio.h”void main(){ int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a; printf(“%d”, *p);}
选项:
A:1
B:
0
C:9
D:3
答案: 【】
6、单选题:
若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是( )。
选项:
A:*p=*q;
B:a=*q;
C:p=q;
D:q=a;
答案: 【】
7、单选题:
变量的指针,其含义是指该变量的( )。
选项:
A:
地址
B:
一个标志
C:
名
D:
值
答案: 【
】
8、单选题:
若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是( )。
选项:
A:a, p, *&a
B:&a, &*p, p
C:&*a, &a, *p
D:*&p, *p, &a
答案: 【】
9、单选题:
有如下语句:int m=6, n=9, *p, *q; p=&m; q=&n; 如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是( )。
选项:
A:p=*q;
B:*p=*q;
C: *p=q;
D:p=q;
答案: 【
10、单选题:
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 #include <stdio.h> main()
{
int *p, *q, a, b;
p=&a;
printf(“input a:”);
scanf(“%d”, *p);
…
}
选项:
A:
*p表示的是指针变量p的值
B:
*p表示的是变量a的值,而不是变量a的地址
C:
*p只能用来说明p是一个指针变量
D:
*p表示的是指针变量p的地址
答案: 【
】
第八章 单元测试
1、单选题:
根据下面的定义,能输出Mary的语句是( )。struct person { char name[9]; int age; }; struct person class[5]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};
选项:
A:printf(“%s”,class[3].name);
B:printf(“%s”,class[2].name);
C:printf(“%s”,class[1].name);
D:printf(“%s”,class[0].name);
答案: 【】
2、单选题:
定义以下结构体数组 struct c{ int x;int y;}s[2]={1,3,2,7};语句printf(“%d”,s[0].x*s[1].x)的输出结果为( )
选项:
A:2
B:21
C:6
D:14
答案: 【
】
3、单选题:
下面程序的运行结果是( )。struct KeyWord { char Key[20]; int ID; }kw[]={“void”,1,”char”,2,”int”,3,”float”,4,”double”,5}; main() { printf(“%c,%d”,kw[3].Key[0], kw[3].ID); }
选项:
A:i,3
B:
n,3
C:
f,4
D:
l,4
答案: 【
】
4、单选题:
若有如下声明:union data { char *p; int n; };以下初始化正确的是( )。
选项:
A:union data a=”Mary”;
B:union data a=10;
C:union data a={“Mary”};
D:union data a={10};
答案: 【】
5、单选题:
以下对枚举类型名的定义中正确的是( )
选项:
A:enum s{′a′, ′b′, ′c′}
B:enum s={a,b,c}
C:enum s={′a′, ′b′, ′c′}
D:enum s {a=9,b=2,c}
答案: 【】
6、单选题:
设有以下说明语句struct ex{ int x; float y; char z;}example;则下面的叙述中不正确的是( )
选项:
A:struct是结构体类型的关键字
B:struct ex是结构体类型
C:x,y,z都是结构体成员名
D:example是结构体类型名
答案: 【
7、单选题:
已知字符0的ASCII码为十六进制的30,下面程序的输出是( )。main(){ union { unsigned char c;unsigned int i[4];} z;z.i[0]=0x39;z.i[1]=0x36;printf(“%c”,z.c);}
选项:
A: 0
B: 6
C: 3
D: 9
答案: 【】
8、单选题:
有以下程序:#include<stdio.h>union pw{ int i; char ch[2]; } a;main(){ a.ch[0]=13; a.ch[1]=0; printf(“%d”,a.i); }程序的输出结果是( )。(注意: ch[0]在低字节,ch[1]在高字节。)
选项:
A:14
B:13
C:208
D:209
答案: 【】
9、单选题:
枚举类型中的每个枚举常量的值都是一个( )。
选项:
A:逻辑值
B:字符
C:浮点数
D:整数
答案: 【】
10、单选题:
设有如下枚举类型定义 enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran};枚举量Fortran的值为( )。
选项:
A: 4
B: 102
C: 103
D: 7
答案: 【 】
第九章 单元测试
1、单选题:
程序流程图中带有箭头的线段表示的是( )。
选项:
A:
数据流
B:
调用关系
C:
图元关系
D:
控制流
答案: 【
】
2、单选题:
以下叙述中正确的是( )。
选项:
A:
算法必须要有输入和输出
B:
算法可以既没有输入又没有输出
C:
算法可以没有输入但必须要有输出
D:
算法可以没有输出但必须要有输入
答案: 【
】
3、单选题:
算法是指( )。
选项:
A:
计算的方法
B:
运算的方法
C:
数字的加工步骤
D:
为解决一个问题而采取的方法和步骤
答案: 【
】
4、单选题:
以下不属于表示算法的方法是( )。
选项:
A:
用计算机语言表示算法
B:
用A-S方法表示算法
C:
用伪代码表示算法
D:
用自然语言表示算法
答案: 【
】
5、单选题:
算法的特点不包括( )。
选项:
A:
有效性
B:
确定性
C:
简易性
D:
有穷性
答案: 【
简易性
】
6、单选题:
描述或表示算法有多种方法,( )不是常用的表示方法。
选项:
A:
自然语句
B:
效果图
C:
伪代码
D:
流程图或N-S图
答案: 【
】
7、单选题:
一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是( )。
选项:
A:
有穷性
B:有零个或多个输入
C:
可行性
D:
有零个或多个输出
答案: 【
】
8、单选题:
算法分析的目的是( )。
选项:
A:
找出数据结构的合理性
B:
分析算法的易懂性和文档性
C:
研究算法中的输入和输出的关系
D:
分析算法的效率以求改进
答案: 【
】
9、单选题:
下面叙述正确的是( )
选项:
A:
其余选项描述都不对
B:
算法的空间复杂度是指算法程序中指令(或语句)的条数
C:
算法的执行效率与数据的存储结构无关
D:
算法的有穷性是指算法必须能在执行有限个步骤之后终止
答案: 【
】
10、单选题:
求1至20之间所有偶数和的算法描述如下①将1赋值给变量i;②判断i是否能被2整除,若是,将该数累加到变量sum中;③将变量i加1,若i还小于或等于20,转②;④输出sum的值;⑤结束。该算法采用的描述方法属于( )。
选项:
A:
流程图
B:
计算机语言
C:
自然语言
D:
伪代码
答案: 【
】
请先
!