试卷号:TSheet1
一、选择题
1、C语言源程序文件的扩展名一般为______ 。 (A) .txt (B) .c (C) .obj (D) .exe
2、以下选项中合法的用户标识符是_____ 。 (A) long (B) _2Test (C) 3Dmax (D) A.dat
3、以下选项中,_____ 不是C语言的保留字(关键字)。 (A) printf (B) short (C) if (D) sizeof
4、下列选项中合法的变量名是_____ 。 (A) x(1) (B) y.1 (C) 3y
(D) _xyz
5、下面各选项中,属于非法的C语言整型常量的是_____ 。 (A) 01 (B) 0x11 (C) 081 (D) -32765
6、以下不合法的常量是_____ 。 (A) 2.7 (B) 1.0E+3 (C) 3.5E-3.0 (D) 3.4e-5
7、下列字符常量的写法中,正确的是_____ 。 (A) '\\082' (B) \(C) '\\t' (D) '\\4f '
8、下列各组中全是字符串常量的是_____ 。
(A) '123' , \(B) 'abc' , 'xyz' , '5'
(C) \(D) '\\n' , \
9、已知字符A的ASCII码是65,字符
a的ASCII码是97,则'\\101'表示的字符常量是____ 。 (A) 字符A (B) 字符B (C) 字符e (D) 非法常量
10、在C语言中,char型数据在内存中的存储形式是_____ 。 (A) 原码 (B) 反码 (C) 补码 (D) ASCII码
11、sizeof(float) 是_____ 。 (A) 一个双精度型表达式 (B) 一个整型表达式 (C) 一种函数调用
(D) 一个不合法的表达式
12、以下能正确地定义整型变量a,b,c,并给它们都赋值5的语句是_____ 。 (A) int a=b=c=5; (B) int a,b,c=5;
(C) int a=5,b=5,c=5; (D) a=b=c=5;
13、以下各组运算符的优先级按由高到低的顺序排列正确的是_____ 。 (A) *=、&&、!=、% (B) *=、%、&&、!= (C) %、!=、&&、*=
(D) &&、!=、%、=
14、已知a、b为整型,z为实型,ch为字符型,下列表达式中合法的是____ 。
(A) z=(a+b)++ (B) a+b=z (C) b=ch+a (D) b=z%a
15、设char ch; 则不合法的赋值语句是____ 。 (A) ch='a+b'; (B) ch='\\0'; (C) ch='a'+'b'; (D) ch=7+9;
16、若有定义int x;则经过表达式x=(float)2/3运算后,x的值为_____ 。(A) 2.0 (B) 0 (C) 2 (D) 1 17、若有int x=13,y=5; 则表达式 x++, y+=2, x/y的值为____ 。 (A) 1 (B) 2 (C) 0 (D) 13
18、逻辑运算符两侧运算对象的数据类型_____ 。
(A) 只能是0或1
(B) 只能是0或非0数
(C) 只能是整型或字符型数据 (D) 可以是任何类型的数据
19、设整型变量m、n、a、b、c、d的值均为1,表达式(m=a>b)&&(n=c>b)运算后,m、n的值是____ 。 (A) 0,0 (B) 0,1 (C) 1,0 (D) 1,1
20、以下为非法操作的是_____ 。 (A) int i ; i=100 ; (B) int i=100 ;
(C) const int i ; i=100 ; (D) const int i=100 ;
21、C语言源程序文件代码经编译后生成的目标文件,其扩展名为_____ 。 (A) .txt (B) .c (C) .obj (D) .exe
22、C语言源程序文件代码经编译后生
成目标文件,对目标文件进行连接后生成可执行文件,其生成的可执行文件的扩展名为_____ 。 (A) .txt (B) .c (C) .obj (D) .exe
二、填空题
1、C语言程序书写格式规定,每行可写____语句,一个语句可以_____ 。
2、一条C语言的语句至少应包含一个_____。 3、用____ 对C语言程序中的任何部分作注释。
4、运用C语言实现一个基本程序的过程,包括编写源程序、_____、连接、运行(调试)。 5、设有说明:char c1; 则 c1='a'; 是否正确?(回答\是\或\否\
6、设有说明:char c2;则 c2=65; 是否正确?(回答\是\或\否\
7、char c ; 表达式 c='a'- 'A'+'B' 运算后,c的值为______ 。
8、表达式 10+'x'+2.5*7 的值为______型的量。
9、表达式 x= (2+3, 6*5) , x+5 运算后,x的值为______ 。
10、设 a=5 ; 则表达式 a+=a*=a+a 运算后,a的值为______ 。 11、设int a=7 ; double x=2.5,y=4.7 ; 则表达式x+a%3*(int)(x+y)%2/4的值为_____ 。
12、把数学表达式x+y≠a+b写成C语言表达式:___________ 。
13、条件\<x<3或x<-10\的C语言表达式是________ 。
14、设int i=32,j=1,k=3;则表达式!i||(j-k)&&i&&!(k-3||i*k)的值为____ 。
15、设int x,y,z; 则执行语句x=(y=(z=10)+5)-5;后,x值为___ ,y值为___ ,z值为___ 。 16、表达式 (int)(sqrt(0.25)+5.7) 运算后, 其值为______ 。
试卷号:TSheet2
一、选择题
1、为了避免在嵌套的条件语句if-else中产生二义性,C语言中规定的if-else匹配原则是____ 。
(A) else子句与其之前未配对的if配对 (B) else子句与其之前未配对的最近的if配对
(C) else子句与其之后最近的if配对 (D) else子句与同一行上的if配对
2、对于switch(c)中的变量c不能定义为____ 类型。 (A) unsigned (B) int (C) char (D) float
3、下列关于switch语句的描述中,正确的是_____ 。
(A) switch语句中default子句只能放在最后
(B) switch语句中case子句后面的表达式可以是整型表达式
(C) switch语句中每个语句序列中必须有break语句
(D) switch语句中default子句可以没有,也可有一个
4、下面叙述正确的是____ 。
(A) for循环只能用于循环次数已经确定的情况
(B) for循环同do while语句一样,先执行循环体再判断
(C) 不管哪种形式的循环语句,都可以从循环体内转到循环体外
(D) for循环体内不可以出现while语句
5、下面程序段运行后,a、b、c的值是_____ 。
a=1; b=2; c=2;
while (a
(A) 1, 2, 0 (B) 2, 1, 0 (C) 1, 2, 1 (D) 2, 1, 1
6、以下程序段的输出结果为____ 。 int i=0, s=0; do{
if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf(\(A) 16 (B) 12 (C) 28 (D) 21 7、以下for循环体执行的次数是_____。 for (x=0,y=0; (y=123) && (x<4);x++);
(A) 为无限次循环 (B) 循环次数不定 (C) 4次 (D) 3次
8、以下程序段的输出结果为_____ 。 for(i=4;i<=10;i++) {
if(i%3==0) continue; printf(\ } (A) 45 (B) 457810 (C) 69
(D) 678910
9、下列不是死循环的是____ 。
(A) int i=100;while(1){ i=i0+1;if (i>100) break;} (B) for ( ; ;); (C) int k=0; do {++k;} while (k>=0) ; (D) int s=36;while (s);--s;
二、填空题
1、以下程序段的运行结果是_____ 。 int x=1, y=0; switch (x) { case 1:
switch (y)
{ case 0: printf(\break;
case 1: printf(\break; }
case 2: printf(\}
2、执行下面程序段后,k值是____ 。 k=1;n=263; do { k*=n;n/=10;} while(n);
3、鸡兔共有30只,脚共有90个,下面的程序段是计算鸡兔各有多少只。 for ( x=1;x<=29;x++ ) { y=30-x; if ( ________ ) printf(\; }
4、下面程序段的运行结果是 ______ 。 int i,j=4;
for(i=j;i<=2*j;i++) switch(i/j) {
case 0:
case 1: printf(\;break; case 2: printf(\; }
5、以下程序段的功能:从键盘输入的字符中统计数字字符的个数(n),用\结束循环。 int n=0; char c; while( ______ )
if( ______ ) n++;
6、填空完成下面程序,其功能是打印
100以内个位数为6且能被3整除的所有数。 int i,j;
for( i=0;_______ ;i++) {
j=i*10+6;
if ( _______ ) continue; printf(\; }
7、填空完成下面程序,其功能是从3个红球,5个白球,6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。 int i, j, k ;
printf(\for(i=0; i<=3; i++)
for( _____ ; j<=5; j++) { k=8-i-j; if( _____ )
printf(\ }
1、一个C语言源程序至少包含一个且只能包含一个_______函数。 (A) MAIN( ) (B) main( ) (C) open( ) (D) close( )
2、一个C语言源程序一般包含有许多函数,其中main()函数的位置_______。 (A) 必须在最开始 (B) 必须在最后
(C) 既可以在最开始也可以在最后 (D) 可以任意
3、对于C语言程序的函数,下列叙述中正确的是_________。
(A) 函数的定义不能嵌套,但函数的调用可以嵌套
(B) 函数的定义和调用均不能嵌套 (C) 函数的定义可以嵌套,但函数的调用不能嵌套
(D) 函数的定义和调用可以嵌套
4、函数声明中不包括下面哪一项?_______。 (A) 函数类型 (B) 函数名
(C) 函数参数的类型和参数名 (D) 函数体
5、以下不正确的说法是___________。 (A) 在不同函数中可以使用相同名字的变量
(B) 形式参数是局部变量 (C) 在函数内定义的变量只在本函数范围内有效
(D) 在函数内的复合语句中定义的变量在本函数范围内有效
6、当一个函数无返回值时,函数的类型应定义为___________。 (A) int (B) void (C) 无 (D) 任意
7、在C语言中函数返回值的类型是___________。
(A) 由调用该函数时系统临时决定的 (B) 由return语句中的表达式类型决定的
(C) 由定义该函数时所指定的函数类型决定的
(D) 由调用该函数时的主调函数类型决定的 8、下列叙述中,错误的是___________。(A) 一个函数中可以有多条return语句 (B) 函数调用执行到return语句即意味着函数调用结束
(C) 函数调用必须在一条独立的语句中完成
(D) 函数通过return语句返回其函数值
9、在函数中未指定存储类型的变量,其隐含存储类型为__________。
(A) 静态(static) (B) 自动(auto) (C) 外部(extern) (D) 存储器(register)
二、填空题
1、一个函数由_____________和_____________两部分组成
2、函数体一般包括_______语句和______语句。
3、C语言程序的执行是从________函数开始,在_________函数中结束。
4、一个C语言源程序一般包含有许多函数,其中main()函数是程序执行的入口,所以在整个程序中它必须定义在所有的函数之前。以上叙述是否正确?(回答\是\或\否\
5、调用其他函数的函数称为________函数,被其他函数调用的函数称为________函数。
6、从变量存在的时间(即生存期)角度来分,可以分为______存储方式和______存储方式。
7、下面add函数的功能是求两个参数的和,并将值返回调用函数。函数中错误部分是__________,改正后为
_____________。 void add(float a,float b)
{ float c; c=a+b; return c; }
8、以下程序的运行结果是_____________________。
void fun(int i,int j) { int x=7; printf(\int main() {
int i=2, x=5, j=7; fun(j,6);
printf(\ return 0; }
答案:#i=7,j=6,x=7#i=2,j=7,x=5 9、以下程序中的isLeap()是判断闰年的函数。请填空。 int main() {
int year;
_____________
printf(\ scanf(\
if( _______________ ) printf(\a leap year.\\n\
else printf(\year);
return 0; }
______ isLeap(int year) { return ( year%4==0&&year0!=0||year@0
==0 ); }
答案:int isLeap(int); isLeap(year) int @int isLeap(int year); isLeap(year) int
10、已有函数pow(): double pow(int x,int y) { int i,j=1;
for(i=1;i<=y;++i) j=j*x; return (j); }
现要求取消变量i后pow函数的功能不变,请填空。
double pow(int x,int y) { int j;
for(__________;__________;__________)
j=j*x; return (j); }
11、[程序]
void myswap(int a, int b) { int t; if(a>b) t=a, a=b, b=t; } int main()
{ int x=15, y=12, z=20; if(x>y) myswap(x,y); if(x>z) myswap(x,z); if(y>z) myswap(y,z);
printf(\ //程序的输出为_________________ return 0; }
12、以下程序的运行结果是_________。 int func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
int main()
{ int k=4,m=1,p;
p=func(k,m); printf(\ p=func(k,m); printf(\ return 0; }
试卷号:TSheet4
一、选择题
1、在C语言中,定义数组长度时,其\元素个数\允许的表示方式是 _______。 (A) 整型常量 (B) 整型表达式
(C) 整型常量或整型表达式 (D) 任何类型的表达式
2、如下数组定义语句正确的是_______。 (A) int a[3,4];
(B) int m=3, n=4, int a[m][n]; (C) int a[3][4];
(D) int a(3)(4);
3、若有说明:int a[10];则对a 数组元素的正确引用是 _______。 (A) a[10] (B) a[3.5] (C) a
(D) a[10-10]
4、以下不能对二维数组a初始化的语句是_______。
(A) int a[2][3]={1,2,3,4,5,6} ; (B) int a[2][]={{1},{2}}; (C) int a[2][3]={1};
(D) int a[][3]={3,4,5,6,7,8};
5、以下不正确的字符串赋初值的方式是______。
(A) char str[ ] = {'s','t','r','i','n','g','\\0'}; (B) char str[7] = {'s','t','r','i','n','g'}; (C) char str1[10]; str1 = \
(D) char str1[ ] = \str2[ ] = \
6、以下程序段的输出结果是_______。 char sp[ ]=\ printf(\strlen(sp)); (A) 3 (B) 5 (C) 1
(D) 字符串中有非法字符,输出值不定
二、填空题
1、程序: int main( ) {
int a[4], x, i;
for(i=1;i<=3;i++) a[i]=0; scanf(\
while(x!=-1) {a[x]+=1; scanf(\&x); }
for(i=1;i<=3;i++) printf(\\i, a[i]); return 0; }
若输入数据如下:
3 1 2 3 2 2 2 1 1 3 3 3 3 3 1 1 2 2 3 2 1 2 3 2 -1
输出结果是_____________________。
2、给a数组输入10,8,6,4,2共5个数,放在a[1]到a[5]中,请阅读程序,回答:若给x输入5,以下程序的输出结果是________。 int main( ) {
int a[80], x, i, n; printf(\ scanf(\
for(i=1;i<=n;i++) scanf(\ printf(\ scanf(\ a[0]=x; i=n;
while(x>a[i]) {a[i+1]=a[i]; i--;}
a[i+1]=x; n++;
for(i=1;i<=n;i++) printf(\ return 0; }
3、以下程序的输出结果是__________。 int main( ) { char str[]=\P1\
int k; char c;
for(k=2; (c=str[k])!='\\0'; k++) {
switch (c)
{ case 'A' : putchar('a'); continue;
case '1' : break; case 1 : while((c=str[++k])!='\\1'&&c!='\\0'); case 9 : putchar('#'); case 'E' :
case 'L' : continue; default : putchar(c); continue; }
putchar('*'); }
putchar('\\n'); return 0; }
试卷号:TSheet5
一、选择题
1、执行完下列3条语句后,c指向______。
int a,b,*c=&a; int * p=c; p=&b;
(A) p (B) c (C) b (D) a
2、下列程序是要对两个整型变量的值进行交换。以下正确的说法是_____。 int myswap(int p, int q) { int t; t=p; p=q; q=t;} int main()
{ int a=10, b=20; myswap(&a,&b); return 0; }
(A) 该程序完全正确
(B) 该程序有错,只要将语句myswap(&a, &b); 中的参数改为a,b即可
(C) 该程序有错,只要将myswap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
(D) 以上说法都不正确
3、若已定义:char s[10]; 则在下面
表达式中不表示s[1]的地址的是_____。 (A) s+1 (B) s++ (C) &s[0]+1 (D) &s[1]
4、下面程序段中, for循环的执行次数是 _____。
char *s=\ for( ; *s!='\\0'; s++) printf(\
(A) 9 (B) 5 (C) 6 (D) 7
5、以下不正确的字符串赋初值的方式是______。
(A) char *str = \(B) char *str; str = \
(C) char str[ ] = {'s','t','r','i','n','g'}; (D) char str[7] = {'s','t','r','i','n','g'};
二、填空题
1、若有以下定义和语句:int a[4]={0,10,20,30}, *p; p=&a[1]; 则++(*p)的值是________。
2、若有以下定义和语句:int a[4]={0,10,20,30},*p; p=&a[2]; 则*--p的值是________。
3、设a数组中的数据已按由小到大的顺序存放,以下程序可把a数组中相同的数据删得只剩一个。请填空。
int delmore(int a[], int m) //m为有序数组a的长度 { int i,j,n; n=i=m-1; while(i>0)
{ if(*(a+i)==*(a+i-1))
{ for(j= __________ ; j<=n; j++)
*(a+j-1)= *( _________ ); n--; } i--; }
return n+1; //返回无重复数据的新的有序数组a的长度 }
4、运行以下程序,从键盘上依次输入book
char a1[80], a2[80],*s1=a1,*s2=a2; scanf(\
if( !strcmp(s1,s2) ) printf(\else printf(\
printf(\
5、下面程序的功能是将两个字符串连接起来。请填空。
char *conj(char *p1,char *p2)
{ char *p=p1;
while(*p1)_____________________ ; while (*p2) {*p1=____________ ; p1++ ; p2++ ;} *p1='\\0';
______________________ ; }
6、下列程序的输出结果是______ int main() { int n;
int fun(char *s1,char*s2); char *p1,*p2; p1=\ p2=\ n=fun(p1,p2); printf(\ return 0; }
int fun(char *s1,char*s2) {
while(*s1&&*s2&&*s2++==*s1++); return *(--s1)-*(--s2); }
一、选择题
1、下列字符序列中,可以作为变量名的是_____。 (A) C++ (B) _DAY
(C) 123abc (D) a b c
2、结构化程序设计的基本结构不包含________。 (A) 顺序 (B) 选择 (C) 跳转 (D) 循环
3、下列叙述正确的是_______。 (A) C程序由函数构成
(B) C程序由函数和过程组成 (C) C程序由主函数组成
(D) 在C程序中无论整数还是实数,只要在允许的范围内都能正确无误地表示。
4、C语言中允许的基本数据类型包括______。
(A) 整型、实型、逻辑型 (B) 整型、实型、字符型 (C) 整型、字符型、逻辑型
(D) 整型、实型、逻辑型、字符型
5、一个C程序的执行是从______。 (A) 本程序的main函数开始,到main函数结束
(B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
(C) 本程序的main函数开始,到本程
序文件的最后一个函数结束
(D) 本程序文件的第一个函数开始,到本程序main函数结束
6、C语言规定,不同类型的数据占用存储空间的长度是不同的。下列数据类型中,满足占用存储空间从小到大顺序排列的是______。
(A) short int , char , float , double (B) char , float , int , double
(C) int , unsigned char , long int , float (D) char , short int , foat , double
7、合法的C语言字符常数是______。 (A) '\\97' (B) \(C) '\\t' (D) \
8、正确表示a不等于0关系的表达式是________。 (A) a<>0 (B) !a (C) a= =0 (D) a
9、设有程序段 int k=10;
while ( k = 0 ) k = k - 1 ;
以下描述正确的是__________。 (A) 循环体语句一次也不执行。
(B) 循环是无限循环。
(C) while循环语句执行十次。 (D) 循环体语句执行一次。
10、若有以下定义:char s[]=\则s所占的内存空间为______。 (A) 1个字节 (B) 12个字节 (C) 11个字节 (D) 10个字节
二、填空题
1、若有说明语句:char c='\\101';则变量c包含_____个字符。
2、若有 int k=5 ; float f ;
则表达式 k=56+f 的数据类型为_______。
3、若有 int x=30 , y=20 ; 则表达式5.0+x/y的值为______。
4、若有 int a=10 , b=9 , c; 则在计算表达式c=(a)+(b=3),c+=2后,变量c的值为______。
5、结束本次循环进入下轮循环用______语句进行控制。