1.下列说法正确的是
答案
main函数可以放在C程序的中间部分,但在执行C程序时是从main函数 开始的
main函数必须放在C程序的最前面
main函数必须放在C程序的最后面
main函数可以放在C程序的中间部分,但在执行C程序时从程序开头执 行的
2.C语言可执行文件程序文件的扩展名是()。
答案
ex e lib obj c
3.C语言目标程序文件的扩展名是()。
答案
obj ex e lib c
4.C语言可执行程序的开始执行点是()。
答案
包含文件中的第一个函 数
程序中的main函数
程序中第一个函数
程序中第一条可执行语 句
5.关于C程序,以下说法不正确的是()。
答案
每条语句和数据声明后面必须有分号
可以用/* */对C程序做注释
C程序中的注释语句也要被执行
C程序书写格式自由,一行内可以写多条语 句
6.C语言程序的三种基本结构是()。
答案
嵌套结构,递归结构,顺序结 构
顺序结构,选择结构,循环结 构
递归结构,循环结构,转移结 构
循环结构,转移结构,顺序结 构
7.C语言中提供的合法关键字是()。
答案
kase defaul t
swith cher
8.关于C程序,以下说法不正确的是()。
答案
C程序书写格式自由一条语句也可分多行书写
可以用/* */对C程序做注释
C程序书写格式自由,一行内可以写多条语句
每条语句后面必须有分号,变量声明后面不必加分 号
9.函数的值通过return语句返回,下面关于return语句的形式描述错误的是( )。
答案
return(表达式);
return表达式;
一个return语句只能返回一个函数 值
一个return语句可以返回多个函数 值
10.以下程序的输出结果是( )。 long fun( int n) { long s;
if(n==1‖n==2) s=2; else s=n-fun(n-1); return s;} main()
{ printf(\"%ld\\n\
答案
4 2 1 3
11.以下程序的正确运行结果是()。 void num() {int x,y;
int a=15,b=10; x=a-b;y=a+b;} int x,y; main()
{int a=7,b=5; x=a+b;y=a-b; num();
printf(\"%d,%d\\n\
答案
5,25 1,12 不确 定 12,2
12.若用以为数组名作函数实参,以下说法正确的是()。
答案
在被调函数中必须指明形参数组的大小
实参数组名与形参数组名必须相同
数组名作函数实参时,形参不可以是指针变 量
函数之间传递的是地址
13.有以下程序,执行程序时,给变量x输入10,程序的输出结果是( )int fun(int n)
{ if(n==1) return 1;
else return(n+fun(n-1));} main() { int x;
scanf(\"%d\%d\\n\
答案
5 4 5 5 4 5 6 5
14.void fun(int x) { if(x/2>1) fun(x/2);
printf(\"%d\main()
{ fun(7); } A) B)
答案
。 7 3 1 7 3 3 7
1 3 7
15.若用数组名作为函数调用的实参,传递给形参的是().
答案
数组元素的个数
数组中全部元素的 值
数组第一个元素的 值
数组的首地址
16.C语言中函数返回值的类型是由( )决定。
答案
主调函数的类型
return语句中的表达式类型
调用函数时临时指定
函数定义时所指定的函数类 型
17.两次执行下面的程序,分别从键盘上输入6和4,则输出结果是 main() { int x;
scanf(\"%d\if(x++>5)
printf(\"%d\else
printf(\"%d\}
答案
7 4 6 4
7 5 6 3
18.为了避免嵌套的条件语句if-else的二义性,C语言规定:与else配对的是
答案
if同一行上的if
其之后最近的if
缩排位置相同的if
其之前最近的未配对的 if
19.以下程序的输出结果是( )。 main()
{ int a=15, b=21, m=0; switch(a%3) {
case 0: m++;break; case 1: m++; switch(b%2) { default:m++;
case 0:m++;break; } } printf(\"%d\\n\ }
答案
3 4 2 1
20.执行下面语句后,y的值为(): int x,y,t; x=y=3;
t=++x||++y;
答案
10 分
1 不定 值 4 3
21.以下程序段中printf的输出结果是()。 int a=5,b=4,c=6,d;
printf(\"%d\\n\
答案
不确 定 4 5 6
22.下列程序段运行后x的值是()。 int a,b,c,x;
a=b=c=0; x=35; if(!a) x--; else if(b);
if(c) x=3; else x=4;
答案
3 3 4 3 5 4
23.能正确表示逻辑关系:\"a≥=10或a≤0\"的C语言表达式是()。
答案
a>=10 or a< =0
a>=10 && a< =0
a>=0|a< =10
a>=10 || a< =0
24.下列说法中正确的是()。
答案
在switch语句中一定要使用break语句
break语句是switch语句的一部分
break只能用于switch语句中
在switch语句中不一定要使用break语 句
25.以下叙述正确的是
答案
当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(\"%5.1f\
输入项可以是一个实型常量,例如:scanf(\"%f\
当输入数据时,必须指明变量的地址,例如scanf(\"%f\
只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(\"m=%d,n=%d\");
10 分
26.getchar函数的功能是()。
答案
接收从键盘输入的字符
接收从键盘输入的字符串
将从键盘输入的字符打印到屏幕上
将从键盘输入的字符串打印到屏幕 上
10 分
27.下面程序段中,printf函数的输出结果为:() int a=1234;
printf(\"%2d\\n\
答案
34
12
提示出错,无结 果 1234
28.已知k为double类型变量,则语句的输出结果是 k=260.72631;
printf(“%-6.2e\\n”,k);
答案
输出为26.07e+01
输出为2.61e+002
输出格式描述的域宽不够,不能输 出
输出为-2.e2
29.下列语句中不是合法的C语句的是()。
答案
a+b; t=z/100 ;
printf(\"C statement.\");
30.putchar函数的功能是()。
答案
接收从键盘输入的字符 串
将字符打印到屏幕上
接收从键盘输入的字符
将字符串打印到屏幕上
31.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )。
答案
scanf(\"%d%d%d\ ;
read(\"%d%d%d\
INPUT x、y、z;
scanf(\"%d%d%d\
32现有定义int a; double b; float c; char k;,则表达式a/b+c-k值的类型为( )。 答案
int float double char
33关于变量,正确的说法是()。 答案
变量定义时可以不指定类型,系统会为它指定
变量与符号常量用法相同
变量名是大小写区分的
变量可以不声明直接使用,也就是所谓的隐式声明
34若a=5,b=3,c=4,逻辑表达式!(a+b)&&!c的值为()
答案
1 2
-1 0
35下面四个选项中,合法的浮点数是()。
答案
5e-9.4 -8e5 123e e-5
36设有定义:int x=2 ;,以下表达式中值不为6的是( ) 答案
x++,2*x x*=x+1
x*=(1+x)
2*x, x+=2
37下列标识符中不合法的是()。 答案
3DS fox s_name _e
38表达式:(int)((double)9/2)-(9)%2的值是( ) 答案
5 3 0 4
39假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
答案
7 2 8 6
40已有定义char str1[15]=\"hello\";
若要用printf函数把数组str1所有元素的值输出,下面选项正确的是()。 答案
printf(\"%s\
printf(\"%s\
printf(\"%s\
printf(\"%s\
41有以下程序,程序运行后的输出结果是( )。 main()
{ char s[]={\"012xy\ int i, n=0;
for(i=0; s[i]!=0; i++) if (s[i]>='a' && s[i]<='z') n++;
printf(\"%d\\n\} 答案
0 3 5 2
42下面程序段的功能为求出数组a中所有元素的最大值,横线处需填写的内容是()。 int i,j,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++)
if(a[i][j]>max) __________ 答案
max=a[j][j];
max=a[j][i];
max=a[i][j];
max=a[i][i];
43对数组a有如下定义int a[ ]={0,1,2,3,4};则数组a的下标的上限是()。 答案
4 0 5 不确定
44执行下面程序段后,printf函数的输出结果为:() char s1[]=\"AbCdEf\printf(\"%d\\n\ 答案
负数 正数 出错 零
45有两个字符数组a,b,以下正确的输出语句是()。 答案
printf(\"%s%s\
puts(a);puts(b);
putchar(a,b);
puts(a,b);
46下列选项中错误的说明语句是( )。 答案
char a[]='toyou\\0';
char a[]=\"toyou\\0\";
char a[]={'t', 'o', 'y', 'o', 'u', '\\0'};
char a[]={\"toyou\\0\
、
47下列选项中,能正确定义数组的语句是( )。 答案
int N=2008; int num[N];
#define N 2008 int num[N];
int num[];
int num[0..2008];
保存并提交 1
1.
下面程序段的运行结果是( )。 char str[]=\"ABC\答案
字符\"C\"
字符\"C\"的地址 0 67
10 分
问题 2
1.
下面程序的输出结果是( )。 main()
{ int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a;
printf(\"%d\\n\} 答案
0 10
9 1
10 分
3
1.
以下程序(字母A的ASCII码值为65), 程序运行后的输出结果是( )。 main()
{ char *s={\"ABC\do {
printf(\"%d\} while(*s);} 答案
ABC 567 656667 5670
10 分
问题 4
1.
下面程序段的运行结果是 char *s=\"abcd\"; s+=1; printf(\"%c\答案
b d
c a
10 分
5
1.
下列程序的运行结果为( )。 void abc(char*str) { int a,b;
for(a=b=0;str[a]!='\\0'; a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\\0'; }
void main()
{ char str[]=\"abcdef\"; abc(str);
printf(\"str[]=%s\} 答案
str[]=a
str[]=abcdef
str[]=abdef str[]=ab
10 分
问题 6
1.
以下正确的程序段是( )。
答案
char str[20],*p=str; scanf(\"%s\
char *p; scanf(\"%s\
char str[20]; scanf(\"%s\
char str[20]; scanf(\"%s\
10 分
7
1.
下面程序段的运行结果是( )。 char *s=\"abcde\"; s+=2; printf(\"%d\答案
字符\"c\"
无确定的输出结果
字符\"c\"的地址 cde
10 分
问题 8
1.
下面程序段的运行结果是 char *s=\"abcd\"; printf(\"%c\答案
d a c
b
10 分
9
1.
以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。 main() { int *p,*q,a,b; p=&a;
printf(\"input a:\"); scanf(\"%d\} 答案
*p表示的是变量a的值,而不是变量a的地址
*p只能用来说明p是一个指针变量
*p表示的是指针变量p的值
*p表示的是指针变量p的地址
10 分
问题 10
1.
下列函数的功能是( )。 fun(char*a,char*b) {
while((*b=*a)!='\\0') {a++; b++;} } 答案
使指针b指向a所指字符串
将a所指字符串赋给b所指空间
将a所指字符串和b所指字符串进行比较
检查a和b所指字符串中是否有'\\0'
C语言课堂练习题
58以下正确的描述是:
A.只能在循环体内和switch语句体内使用break语句 B.在循环体内使用break语句或continue语句的作用相同 C.continue语句的作用是结束整个循环的执行 D.从多层循环嵌套中退出时,只能使用goto语句
59在c语言程序中,当do while语句构成的循环中的条件为()时候,结束循环。 A. true B. 1 C. 非0 D. 0
60.T为int类型,进入下面的循环之前,t的值为0,有如下程序片段:while(t=1){……}以下叙述中正确的是() A.以上说法均不正确 B.循环控制表达式的值为1 C.循环控制表达式的值为0
D.循环控制表达式不合法
61下面程序段的输出结果是()。 Main() {int n=9;
While(n>6){n-;printf(“%d”,n);} } A.876 B.987 C,8765 D.9876
62intf,n;一下能正确计算f=n!的程序段是()A,f=1;
For(i=n;i>1;i++) F*=i; B. ,f=1;
For(i=1;iC. ,f=0;For(i1n;i<=n;i++) F*=i; D, ,f=1;
For(i=n;i>=1;i-) F*=i;