大家都来做做下面的C语言测试题,看看谁的正确率最高
一. 单选题
1. 以下不正确的C语言标志符是 ( )
A. a_bc B. ABC C. _ab D. ab.c
2. 在C程序中, main( )的位置是 ( )
A.必须作为第一个函数 B.必须作为最后一个函数
C.可以任意 D.必须放在它所调用的函数之后
3. 有如下输入语句:scanf(“%d, %d, %d”,&a,&b,&c);为使变量a=1,b=3,c=2,则从键盘输入数据的正确形式 (其中<CR>表示回车) ( )
A. 132<CR> B. 1,3,2<CR> C. 1 <CR> 3 <CR> 2<CR> D. a=1,b=3,c=2<CR>
4.C语言中用_______表示逻辑“假”值 ( )
A. true B. t或y C. 非零数 D.零
5.语句while(!e)中的!e等价于 ( )
A. e= =0 B. e!=1 C. e!=0 D. e=0
6.以下for循环是 ( )
for (x=0,y=0;(y!=1)&&(x<4);x++);
A. 无限循环 B. 次数不定 C. 执行4次 D.执行3次
7.在定义int a[10]之后,对其元素的引用正确的是 ( )
A. a[11] B. a[6.3] C. a(6) D. a[10-10]
8.C语言的编译系统对宏命令的处理是 ( )
A.在程序运行时进行的 B. 在程序连接时进行的
C. 在与C程序中的其他语句同时进行编译的
D.在对源程序中其他语句正式编译之前进行的
9.设int a[9],*p=a; 不能表示a[1]地址的表达式是 ( )
A. p+1 B. a+1 C. a++ D. ++p
10.设int *p, i;以下正确的赋值语句是 ( )
A. p=i; B. i=p; C. &i=p; D.p=&i;
11.以下程序输出结果是 ( )
main( )
{ int a=12,b=12;
printf(“%d,%d”,--a,++b);}
A. 10,10 B.12,12 C. 11,10 D. 11,13
12. 设char ch; 则ch=’A’+’B’; 则ch的值为 ( )
A. ‘AB’ B. “AB” C.131 D.不确定
13.下列关于C函数说法不正确的是 ( )
A.C程序的执行总是从main函数开始,在main函数中结束。
B.根据函数能否被其他源文件调用,将函数分为内部函数和外部函数。
C.C函数允许嵌套定义。 D.函数可以没有返回值。
14. 以下对字符数组初始化不正确的是 ( )
A.char word[]=’turbo\0’;
B.char word[]={’t’,’u’,’r’,’b’,’o’,’\0’};
C.char word[]={“turbo\0”};
D.char word[]=“turbo\0”;
15.在下列的函数首部中,正确的定义是 ( )
A.void test(int a,b) B.void test(a as Integer)
C.void test(var a:Integer) D.void test(int a,int b)
20.下面程序的输出结果是 ( )
#define N 5
#define S(n) ((N+1)*n)
main()
{ int m;
m=2*(N+S(5)+2);
printf("%d",m);
}
A.程序出错 B.94 C.121 D.74
二.填空题
1.C语言中,在定义函数时若不指定函数类型,系统会隐含指定函数类型为_______类型。
2. 结构化程序设计中的三种基本结构是___________, ___________, ___________
3. C语言源程序文件的后缀名是 .c ,编译后生成的文件后缀名是___________,
连接后得到的文件后缀名是______________
4. 设int x=1,y=2, 则表达式 1+x/y 的值是__________
5. 在C语言中,变量可以分为局部变量和全局变量,在函数体内定义的变量是________变量,在函数体外定义的变量是_________变量
6. 用C语言形式描述下面的表达式:b2-4ac
7. 在printf格式字符中, 以小数形式输出实数的格式控制字符是_______
8. C语言中,双精度实型的类型名为___________,空类型的类型名为___________。
9. C语言中逻辑表达式的值不是______就是______,但在判断一个量是否为“真”时,以______代表“假”,以______代表“真”。
10.在使用C语言的库函数时,要用预编译命令___________将相关“头文件”包括到用户源文件中。
11.在一个C源程序中,注释部分两侧的分界分别为____ _和__ ___。
三.程序填空
1. 输出100以内能被3整除的所有整数
# include <stdio.h>
main( )
{ int i;
for (i=0; i<100 ;_______; )
{
if (__________)
printf(“%d ”,i);
}
}
2. 打印出200以内的全部素数
# include <math.h>
main( )
{ int m,k,i,n=0;
for (m=2; m<=200; m ++)
{k=_________;
for (i=2; i<=k; i++)
if (__________) break;
if (i>=________) printf(“%d”,m);
}
printf(“\n”);
}
3.求5个数中的最大值和最小值
main()
{
int a[5]={5,8,10,4,6};
int max,min,k;
max=a[0];
for(k=0;k<5;k++)
{ if( ) max=a[k];
if(a[k]<min) ;
}
printf(“max=%d min=%d”,max,min);
}
四. 分析题
1写出下列程序运行结果
main()
{int i, k;
for(i=1;i<=4;i++)
{
for(k=1;k<=i;k++) printf(“%d”,i);
printf(“\n”);
}
}
2.写出下面程序的输出结果。
main()
{
int a[5]={4,17,9,6,8};
int I,j,k,t;
for(I=0;I<5;I++)
{k=I;
for(j=I+1;j<5;j++)
if(a[j]<a[k]) k=j;
if(k!=I)
{t=a[k]; a[k]=a[I]; a[I]=t;}
}
for(I=0;I<5;I++)
printf(“%4d”,a[I]);
}
3.请写出下面程序的输出结果。
#include <stdio.h>
main()
{ int a,b;
for(a=1,b=1;a<=50;a++)
{ if(b>=10) break;
if(b%2==1)
{ b+=2;
continue;
}
b*=2;
}
printf(“%d\n”,a);
}
4. 请写出下面程序的输出结果。
void printstar( int n)
{ int i;
if (n>0)
{ for(i=1;i<=n;i++)
printf(“*”);
printf(“\n”);
printstar(n-1);
}
}
main()
{ printstar(5); }