资源描述
一、选择题
1、 以下程序段得输出结果就是: ( )
int x=17,y=3,z; printf(“%d\n”,z=(x=x/y,x%y));
A) 3 B) 0 C) 2 D) 1
2、 以下if语句语法正确得就是: ( )
A) if(x>0) B)if(x>0)
printf("%f",x) {x=x+y;printf("%f",x);}
else printf("%f",-x); else printf("%f",-x);
C) if(x>0) D) if(x>0)
{x=x+y;printf("%f",x);}; {x=x+y;printf("%f",x)}
else printf("%f",-x); else printf("%f",-x);
3、 下面程序段得运行结果就是: ( )
int a=1,b=2,c=2,t;
while(a<b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d\n",a,b,c);
A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,1
4、若m为整型变量,则以下循环执行次数就是: ( )
for(m=2;m==0;) printf("%d",m--);
A) 无限次 B) 0次 C) 1次 D) 2次
5、在C语言中,以下正确得说法就是: ( )
A)实际参数与其对应得形式参数各占用独立得存储单元
B)实际参数与其对应得形式参数占用同一个存储单元
C)只有当实际参数与与其对应得形式参数同名时才占用同一个存储单元
D)形式参数就是虚设得,不占用存储单元
6、以下程序得输出结果为 ( )
main()
{int i,k,a[10],p[3]; k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]= a[i*( i +1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf(“%d\n”,k); }
A) 20 B) 21 C) 22 D)23
7、以下程序得输出结果为: ( )
char str[]="ab\n\012\\\""; printf("%d",strlen(str));
A) 3 B) 4 C) 6 D) 12
8、以下程序得输出结果就是: ( )
main()
{int n[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j];
printf("%d\n",s);
}
A) 18 B) 19 C) 20 D)21
9、设有以下宏定义: ( )
#define N 3
#define Y(n) ((N+1)*n)
则执行语句:z=2*(N+Y(5+1));后,z得值为:
A)出错 B)42 C)48 D)54
10、下列程序执行后输出得结果为: ( )
f(int a)
{ static int b,c=3; a=b; b=++c; return(a);}
main()
{int a=2,j,k; for(j=0;j<2;j++) k=f(a); printf(“%d\n”,k); }
A) 4 B) 0 C) 6 D) 5
11、下列程序语句得输出就是: ( )
int n=0;
while(n++<=2); printf("%d",n);
(A)2 (B)3 (C)4 (D)有语法错误
12、 下列程序语句得输出就是: ( )
int a=011; printf("%d\n",++a);
(A) 12 (B) 11 (C) 10 (D) 9
13、 执行语句for(i=1;i++<4;);后,变量i得值就是: ( )
(A)3 (B)4 (C)5 (D)不确定
14、 定义int x=0,y=8,z=9后,则下面表达式得值为0得就是: ( )
(A) 'x'&&'y' (B) x<=y (C)x||y+z&&y-z (D)!((x<y)&&!z||1)
15、 对下述程序段描述正确得就是: ( )
int k=0; while(k=1) k++;
A) 有语法错误,不能执行 B) 循环就是无限得
C) 循环体语句一次也不能执行 D) 循环体语句执行一次
16、下述程序得运行结果就是: ( )
#include"stdio、h"
main()
{ int i;
for(i=1;i<=5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
}
(A)*#*#*#$ (B)#*#*#*$ (C)*#*#$ (D)#*#*$
17、下述程序得输出结果就是: ( )
#include"stdio、h"
int x;
void fun();
void main()
{int x=1;
if(x==1) {int x=2; printf("%d,",x++);}
{extern int x; printf("%d,",++x);}
fun();
}
void fun() {printf("%d",x++);}
A)2,1,1 B) 1,2,1 C) 2,2,2 D) 2,2,1
18、下面对宏定义得描述,不正确得就是: ( )
A)宏不存在类型问题,宏名无类型,它得参数也无类型
B)宏替换不占用运行时间
C)宏替换就是先求出实参表达式得值,然后代入形参运算求值
D)其实,宏替换只不过就是字符替代而已
19、以下程序得输出结果就是: ( )
#include <stdio、h>
int func(int a,int b);
void main()
{ int k=4,m=1,p;
p=func(k,m); printf("%d,",p);
p=func(k,m); printf("%d,",p); }
int func(int a,int b)
{ static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
A)8,17 B)8,16 C)8,20 D) 8,8
20、若有说明:int a[ ][3]={1,2,3,4,5,6,7};则a数组第一维得大小就是: ( )
(A)2 (B)3 (C)4 (D)无确定值
19、 下列程序段执行后,s得值为: ( )
char ch[]=”600”; int a,s=0;
for(a=0;ch[a]>=’0’&&ch[a]<=’9’;a++) s=10*s+ch[a]-‘0’;
a) 600 b) 6 c) 0 d) 出错
20、 在c程序中,注释部分从哪开始,到哪结束? ( )
a)从*/开始,到/*结束 b)从REM开始,无结束标志
c)无起始标志 d)从/*开始,到*/结束
20、 针对下列语句得正确得叙述为 ( )
char x[]=”abcd”;char y[]={‘a’、‘b’、‘c’、‘d’};
a)数组x与数组y等价 b)数组x与数组y得长度相同
c)数组x得长度大于y得长度 e)数组x得长度小于y得长度
22、 下列程序段得输出结果为(u代表空格) ( )
char s[10]; s=“abcd”; printf(“%s\n”,s);
a) abcd b) a c)abcduuuuu d)编译不通过
23、若j为int型变量,则下列语句得执行结果为 ( )
for(j=10;j>3;j--)
{if(j%3) j--;
--j;--j;
printf(“%d ”,j);}
a) 6 3 b) 7 4 c) 6 2 d) 7 3
24、下列程序段得输出结果为 ( )
int x=3;
do{printf(“%3d”,x-=2);} while(!(--x));
a) 1 b) 3 0 c) 1 -2 d) 死循环
25、 设变量已正确定义并赋值,则符合C语言语法得表达式就是:( )
(A)a=a+5; (B)a=b=c++ (C)int(34、5%5) (D)a=a+8=b-c
26、下列程序段得运行结果就是: ( )
int n=0; while(n++<=2); printf("%d",n);
(A)2 (B)3 (C)4 (D)有语法错误
27、若有说明:int a[3][4];则对a数组元素得正确引用就是:( )
(A) a[2][4] (B) a[1,3] (C)a[1+1][0] (D)a(2)(1)
45、 针对以下程序段,说法正确得就是 ( )
int a=5,b=0,c=0; if(a=b+c) printf("* * *"); else printf("& & &");
(A)有语法错误不能通过编译 (B)可以通过编译但不能通过连接
(C)输出 * * * (D)输出 & & &
28、 执行下面得程序段后,a得值为 ( )
int a,b;
for(a=1,b=4;a<=60;a++)
{if(b>=23) break;
if(b%3==1) {b+=3;continue;}
b-=5; }
(A)7 (B)8 (C) 9 (D)10
29、以下描述中错误得就是 ( )
(A)函数调用可以出现在执行语句中
(B)函数调用可以出现在表达式中
(C)函数调用可以作为函数得实际参数
(D)函数调用可以作为函数得形式参数
30、以下程序得输出结果就是 ( )
#define ADD(x) x+x
main()
{int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf("sum=%d",sum); }
(A)sum=9 (B)sum=10 (C)sum=12 (D)sum=18
31、以下程序得输出结果就是 ( )
void fun(int a,int b,int c)
{a=456;b=567;c=678;}
main()
{int x=10,y=20,z=30;
fun(x,y,z);
printf(“%d,%d,%d”,z,y,x);
}
(A) 30,20,10 (B)10,20,30 (C)456,567,678 (D)678,567,456
32、下面程序应能对两个整型变量得值进行交换。以下说法正确得就是( )
main()
{ int a=10,b=20;
printf("(1)a=%d,b=%d\n",a,b);
s);
printf("(2)a=%d,b=%d\n",a,b;
}
s p,int q)
{ int t;
t=p;p=q;q=t;
}
(A)该程序完全正确
(B)该程序有错,只要将语句s);中得参数改为a,b即可
(C)该程序有错,只要将swap()函数中得形参p与q以及t均定义为指针变量即可
(D)以上说法都不正确
33、 执行下面得程序段后,a得值为:
int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20) break; if(b%3==1) {b+=3;continue;} b-=5; }
A、 7 B、 8 C、 9 D、 10
34、 该程序得输出结果就是多少?
#include <stdio、h>
main()
{ int i,j,x=0;
for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } }
printf("x=%d\n",x); }
A、 x=4 B、 x=8 C、 x=6 D、 x=12
35、 下面这个程序得输出就是什么?
#include <stdio、h>
main() { int y=10; while(y--); printf("y=%d\n",y); }
A、 y=0 B、 while构成死循环 C、 y=1 D、 y=-1
36 C语言可执行程序从什么地方开始执行?
A、 程序中第一条可执行语句 B、 程序中第一个函数
C、 程序中得main函数 D、 包含文件中得第一个函数
37、 以下对C语言函数得有关描述中,正确得就是:
A、 在C中,调用函数时,只能把实参得值传给形参,形参得值不能传给实参
B、 C函数既可以嵌套定义又可以递归调用
C、 函数必须有返回值,否则不能使用函数
D、 C程序中有调用关系得所有函数必须放在同一个源程序文件中
38、 以下叙述中不正确得就是:
A、 在C中,函数中得自动变量可以赋初值,每调用一次,赋一次初值
B、 在C中,在调用函数时,实参与对应形参在类型上只需赋值兼容
C、 在C中,全局变量得隐含类别就是自动存储类别
D、 在C中,函数形参可以说明为register变量
39、 表示关系x>=y>=z得c语言表达式为: ( )
a) (x>=y)&&(y>=z) b) (x>=y)AND(y>=z) c) (x>=y>=z) d) (x>=y)&(y>=z)
40、 假定a与b为int型变量,则执行以下语句后b得值为: ( )
a=2;b=8; do{b-=a;a++;}while(b--<0);
a) 6 b) 4 c) –1 d) 5
41、下述对C语言字符数组得描述中错误得就是: ( )
a)字符数组可以存放字符串
b)字符数组中得字符串可以整体输入、输出
c)可以用关系运算符对两个字符串进行比较
d)不能在赋值语句中通过赋值运算符“=”对字符数组整体赋值
42、以下程序得输出结果就是: ( )
int f(int x,int y)
{int z; while(y) {z=x%y;x=y;y=z;} return(x); }
main()
{int a=32,b=24,c; c=f(a,b); printf(“%d\n”,c);}
a) 6 b) 7 c) 8 d) 9
二、多项选择题
1、 指出下面合法得标识符:
A、 3ab B、 int C、 ABC D、 a_3
E、 sum、a F、 #abc G、 _stu2 H、 abc f
2、 指出下面哪些就是合法得用户定义得标识符:
A、 P-S B、 putchar C、 double D、 _908
E、 *par F、 sheep! G、 wind H、 x y
3、 以下哪些不就是C语言提供得合法得关键字:
A.charﻩ B、 swicthﻩ C、 Caseﻩ D、 default
4、 指出下面哪些就是合法得关键字:
A、 char B、 abc C、 printf D、 Int
E、 float F、 define G、 include H、 PI
5、 下面哪些就是定义局部变量储存类别得关键字?
A、 int B、 auto C、static D、float
E、 register F、extern G、 unsigned H、signed
6、 C语言中整形常量按进制划分,有以下几种:
A、 十六进制常量 B、 十进制常量 C、 八进制常量 D、 二进制常量
7、 下面哪些写法就是对得,而且就是常量?
A、 125 B、 -、456 C、 1、25e20 D、 'AB'
E. E6 F、 0238 G、 0xabcdef H、 "\n\\\'\123"
8、 请从下面得选项中选出正确得C语言得转义字符。
A、 '//' B、 '\'' C、 '\t' D、 '\n'
E、 '\1011' F、 '/018' G、 '/123' H、 '\xaa'
9、 如果要把常量327存入变量a中,a可以定义成哪些类型?
A、 int B、 char C、 long D、 float
10、 指出下面各说明语句中哪些就是合法得:
A、 int abcd[0x80]; B、 char 9ab[10];
C、 char chi[-200]; D、 int aaa[5]={3,4,5};
E、 float key[]={3、0,4、0,1,0}; F、 char disk[];
G、 int n=2,floppy[n]; H、 int cash[4]={1,2,3,4,5,6};
11、 下列语句中不符合C语言语法得语句有
A、 a=7+b,c=a+7; B、 a=7+b+c=a+7; C、 a=7+b,b++,a+7; D、 a=7+b++=a+7;
12、 指出下面错误得表达式:
A、 a+b=5 B、 56=a11 C、 i=i++
D、 5、6+6、2%3、1 E、 12 F、 a=5,b=6,c=7
13、 若a为整型变量,则以下表达式与表达式 a!=0 真假值情况相同有:
A、 a>0||a<0 B、 a C、 !a==0 D、 !a
15、 若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实
现将f中得数值保留小数点后两位,第三位进行四舍五入得运算?
A、 f=(f*100+0、5)/100、0 B、 i=f*100+0、5,f=i/100、0;
C、 f=(int)(f*100+0、5)/100、0; D、 f=(f/100+0、5)*100、0;
16、 请选择您认为正确得说法。
A、在C语言中,函数可以嵌套定义。
B、程序中得注释部分可有可无,通常可以省略。
C、在函数中,只能有一条return语句。
D、C程序中,编译程序会检查数组下标就是否越界。
E、在C程序中,ABC与abc就是两个不同得变量。
F、在C语言中,函数中得变量可以赋初值,每调用一次该函数,就赋一次初值。
G、C语言中不能对数组名进行加减与赋值运算。
17、 下面各语句行中,不能正确进行赋字符串操作得语句行就是
A、 char s[10]; scanf("%s",&s);ﻩ B、 char st[4][5]={"ABCDE"};
C、 char s[5]={'A','B','C','D','E'}; D、 char s[50]; s="ABCDE";
18、 不合法得数组定义就是
A、 int a[ ]="string"; B、 int a[5]={0,1,2,3,4,5};
C、 vhst s="string"; D、 char a[ ]={'0','1','2','3','4','5'};
19、 指出下面哪些就是保留字:
A、 char B、 abc C、 printf D、 Int E、 float F、 define G、 include H、 PI
20、 指出下面哪些就是合法得用户定义得标识符?
A、 P-S B、 putchar C、 double D、_908 E、 *par F、 sheep! G、wind H、 x y
21、 C语言得基本类型哪些:
A、 整型 B、 枚举型 C、 数组型 D、 指针型 E、 字符型 F、 构造型 G、 实形 H、 空类型
22、 这段程序中得常量有:
#define PI 3、14
void main()
{ int sum;
sum = 10 + 15;
printf("sum=%d\n",sum);
printf("result is 25\n");
}
这段程序中常量有:
A、 10 B、 sum C、 15 D、 25 E、 main F、 PI
23、C语言得主要特点有哪些?
A、简洁、紧凑,使用方便、灵活,易于学习与应用。
B、C语言就是面向结构化程序设计得语言。
C、C语言允许直接对位、字节与地址进行操作。
D、数据类型丰富。
E、C语言生成得目标代码质量高。
24、以下说法正确得有:
A.输入项可以为一个实型常量,如scanf("%f",3、5);
B.只有格式控制,没有输入项,就不能进行正确输入,如scanf("a=%d,b=%d");
C.当输入一个实型数据时,格式控制部分应规定小数点后得位数,如scanf("%4.2f",&f);
D.当输入数据时,必须指明变量得地址,如scanf("%f",&f);
25、 以下叙述中正确得有 ( )
(A)预处理命令行都必须以#号开始
(B)在程序中凡就是以#号开始得语句行都就是预处理命令行
(C)C程序在执行过程中对预处理命令行进行处理
(D)以下就是正确得宏定义
#define IBM_PC pc#3
26、以下正确得叙述有 ( )
(A)C语言得预处理功能仅仅就是指完成宏替换与包含文件得调用
(B)预处理命令只能位于C源程序文件得首部
(C)一条预处理命令必须单独占一行
(D)C程序中,编译预处理就是在编译开始之前进行得
三、填空题
1、 设a=3,b=4,c=5,则逻辑表达式a||b+c&&b-c得值就是: 1 。
2、 语句printf("%5.3f\n",123456、12345);得输出为__123456、123__ ___。
3、 下面程序段得运行结果就是: 11 。
int i=0,sum=1; do {sum+=i++;} while(i<5); printf("%d\n",sum);
4、 若定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到得
值就是: 0 ;a[2][1]得到得值就是: 6 。ﻩ
5、 下面程序得输出结果就是: t1=7,t2=70 。
#define MAX(x,y) (x)>(y)?(x):(y)
main()
{int a=5,b=2,c=3,d=3,t1,t2;
t1=MAX(a+b,c+d)*10; t2=MAX(c+d,a+b)*10;
printf("t1=%d,t2=%d",t1,t2); }
6、 要使以下程序段输出3个整数,请填入一个整数:
for(j=1;j<= 7(7-14都可以) ;printf(“%d\n”,j+=j++));
7、 下面程序段就是找出整数得所有因子(包括1与整数本身),请填空:
scanf("%d",&x); i=1;
for(; i<=x ;) {if(x%i==0) printf("%3d",i); i++}
8、函数fun得功能就是:使一个字符串按逆序存放,请填空
void fun(char str[])
{char m; int i,j;
for(i=0,j=strlen(str);i< j-1 ;i++,j--)
{m=str[i]; str[i]= str[j-1] ; str[j-1]=m;}
printf("%s\n", str ); }
9、 设x与y均为int型变量,且x=1,y=2;则表达式1、0+x/y得值为 1、0 。
10、 设i,j,k均为int型变量,则执行完下列for循环:
for(i=0,j=10;i<=j;i++,j--) k=i+j; 之后,k得值为 10 。
11、 若输入字符串:abcde<回车>,则以下while循环体将执行 0 次。
while((ch=getchar())=='e') printf("*");
12、 下面程序段统计从键盘输入得字符中数字字符得个数,换行符结束,请填空
int n=0; char c; c=getchar();
while(c!='\n')
{if( c>='0'&&c<='9' ) n++;
c=getchar();
}
13、 若定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到得
值就是: 0 ;a[2][1]得到得值就是: 6 。
14、若x为int型变量,则执行以下语句x=7;x+=x-=x+x;后x得值就是: -14 。
15、Turbo C环境中,用RUN菜单中得RUN命令运行C程序得快捷键就是 Ctrl+F9 。
16、若有定义:int a[ ]={2,4,6,8,10,12},*p=a;则*(p+1)得值就是 4 ,*(a+5)得值就是 12 。
17、 若已知a=7,b=3,c=0,则表达式a+b||c得运算结果就是 1 。
18、 条件“2<x<3或者x<-10”得C语言表达式就是: 2<&&X<3|| x<-10 。
19、 若变量a、b为int型,以下语句可以不借助任何变量把a、b得值交换,请填空:
a+= b ;b=a- b ;a-= b ;
20、以下程序得输出结果就是 12 。
int a[10],i,k=0;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<4;i++) k+=a[i]+i;
printf("%d\n",k);
21、以下程序中for语句得循环体被执行得次数为: 6 。
#define N 2
#define M N+2
#define NUM 2*M+1
main()
{int i;
for(i=1;i<NUM;i++) printf("%d\n",i);
}
22、下面程序段就是找出整数得所有因子(包括1与整数本身),请填空:
scanf("%d",&x);
i=1;
for(; (15) ;)
{ if(x%i==0) printf("%3d",i);
i++
}
23、下述程序得功能就是查找数组中元素得最大值输出,请填空完成。
#define A 10
main( )
{ int a[A];
int max,i;
#if A<=10
for(i=0;i<A;i++)
a[i]=10+i;
#else
for(i=0; i<A ;i++)
scanf("%d",&a[i]);
#endif
max= a[0] ;
for(i=1;i<A;i++)
if( max<a[i] )
max=a[i];
printf("Max=%d\n",max);
}
24、下面程序将二维数组a得行与列元素互换后存到另一个二维数组 b 中。
#include <stdio、h>
main()
{ int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
prntf(″arrary a:\n″);
for(i=0; i<=1; i++)
{ for(j=0; J<=2 ; j++)
{ printf(″%5d″, a[i][j]);
展开阅读全文