2008春季学期计算机技术基础C语言试题(A)卷
(考试时间:120分钟)
一、选择题(每题1分,共40分)
1、在C语言中,合法的长整型常数是
A) 0L B) 4962710 C) 324562& D) 216D
2、以下有4组用户标识符,其中合法的一组是
A) For B) 4d C) f2_G3 D) WORD
sub DO IF void
Case Size abc define
3、以下选项中合法的字符常量是
A) "B" B) '\010' C) 68 D) D
4、假定x和y为double型,则表达式x=2,y=x+3/2的值是
A) 3.500000 B) 3 C) 2.000000 D) 3.000000
5、以下合法的赋值语句是
A) d-- B) x=y=100; C) x+y; D) c=int(a+b);
6、设正x、y均为整型变量,且x=10 ,y=3,则printf("%d,%d\n",x--,--y);语句的输出结果是
A) 10,3 B) 9,3 C) 9,2 D)10,2
7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);
8、以下程序的输出结果是
main()
{ int a=3;
printf("%d\n",(a-=a*a) ); }
A) -12 B)12 C) 0 D) -6
9、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后n的值为
A) 0 B) 1 C)2 D) 3
10、阅读以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++); }
程序运行后,如果从键盘上输人5,则输出结果是
A)3 B) 4 C) 5 D) 6
11、t为int类型,进人下面的循环之前,t的值为0
while( t=l )
{ ……}
则以下叙述中正确的是
A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法D) 以上说法都不对
12、以下程序的输出结果是
main()
{ int num= 0;
while(num<=2)
{ num++; printf("%d\n",num); }
A) 1 B) 1 C)1 D) l
2 2 2
3 3
4
13、以下各选项企图说明一种新的类型名,其中正确的是
A) type def v1 int; B) type def v2=int; C) type def v1 int v3; D) type def v4: int;
14、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定
15、以下函数值的类型是
fun ( float x )
{ float y;
y= 3*x-4;
return y; }
A) int B) 不确定C) void D) float
16、以下程序的输出结果是
main()
{ char c='z';
printf("%c",c-25); }
A) a B) Z C) z-25 D) y
17、以下选项中,非法的字符常量是
A) '\t' B) '\17' C)"n" D) '\xaa'
18、以下定义语句中,错误的是
A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n];
19、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20
20、以下程序的输出结果是
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]); }
A) 258 B) 741 C) 852 D) 369
21、以下数组定义中不正确的是
A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
22、以下程序的输出结果是
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]; }
A) 0650 B) 1470 C) 5430 D) 输出值不定
23、以下选项中,不能正确赋值的是
A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[20]="Ctest"; D) char *s4="Ctest\n"
24、以下程序的输出结果是
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; } }
printf("%d\n",a); }
A) 101 B) 6 C) 5 D) 4
25、以下程序的输出结果是
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf("%d%d \n", a,b); }
A) 100200 B) 57 C) 200100 D) 75
26、int x=0,y=1; 则以下选项中,结果为零的表达式是
A)x || y B) x + y C) x && y D) ! x
27、以下叙述中正确的是()
A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译
28、以下符合C语言语法的实型常量是()
A)1.2E0.5 B)3.14.159E C).5E-3 D)E15
29、若以下选项中的变量已正确定义,则正确的赋值语句是()
A)x1==26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
30、设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是()
A)a++; B)b++ C)c++; D)d++;
31、设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是()
A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
32、以下4个选项中,不能看作一条语句的是()
A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;
33、有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);}
程序执行后的输出结果是()
A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
34、以下叙述中正确的是()
A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行定义
35、以下非法的赋值语句是()
A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;
36、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是
A)printf(“x=%d\n”,x); B) printf(“x=%1d\n”,x); C)printf(“x=%8dL\n”,x); D)printf(“x=%LD\n”,x);
37、若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i); }
执行后的输出结果是()
A) 8,6 B) 8,3 C) 6,4 D) 7,4
38、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是
A) 6 B) 0 C) 2 D) 1
39、以下选项中,与k=n++完全等价的表达式是()
A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1
40、有以下程序段
int n=0,p;
do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);
此处do—while循环的结束条件是
A) P的值不等于12345并且n的值小于3 B) P的值等于12345并且n的值大于等于3
C) P的值不等于12345或者n的值小于3 D) P的值等于12345或者n的值大于等于3
二、填空题(每题1分,共10分)
1、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为(1) 。
C语言中的逻辑值"真"是用__{2}__表示的,逻辑值"假"是用_(3)__表示的。逻辑表达式值为"真"是用__(4)__表示的,逻辑表达式值为"假"是用__(5)__表示的。
2、以下程序实现输出x,y,z三个数中的最大者。请在( )内填入正确内容。
main ()
{int x=4,y=6,z=7;
int (6);
if(x>y) u=x;
else u=y;
if ( (7) ) v=u;
else v=z;
printf("v=%d",v);
}
3、以下程序实现:输入三个数,按从大到小的顺序进行输出。请在( )内填入正确内容。main ()
{int x,y,z,c;
scanf("%d %d %d",&x,&y,&z);
if ( (8) )
{c=y;y=z;z=c;}
if ( (9) )
{c=x; x=z;z=c;}
if ( (10) )
{c=x;x=y;y=c;}
printf("%d,%d,%d",x,y,z);
}
三、分析程序给出运行结果(每题1分,共10分)
1、阅读以下程序后,写出运行结果。
#include<math.h>
main()
{int m,s=0;
for(m=3;m<10;m=m+2)
if(prime(m)) s+=m;
printf("s=%d\n",s);
}
int prime(int m)
{int k,j;
k=sqrt(m);
for(j=2; j<=k;j++)
if(m % j==0)return 0;
return 1;
}
2、阅读以下程序后,写出运行结果。
void f (int c)
{int a=0;
static int b=0;
a++; b++;
printf("%d:a=%d,b=%d\n",c,a,b);
}
3、main()
{ int x=100,a=20,b=l0,c=5,d=0;
if (a<b)
if (b!=15)
x=15;
else
if (d)
x=100;
x=-10;
printf("%d",x);
}
4、输入3个数5,6,2输出结果是什么。
main()
{ float a,b,c,t;
scanf("%f,%f,%f",&a,& b,&c);
if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(b>c) {t=b;b=c;c=t;}
printf("%4.1f%4.1f%4.1f\n",a,b,c);return在c语言中是什么意思
}
5、程序运行输入3值,输出输出结果是什么。
main()
{ int x,y;
scanf("%d",&x);
if(x<0) y= -1;
else if(x= =0) y=0;
else y=1;
printf("x=%d,y=%d\n",x,y);
}
6、程序运行输入3值,输出结果是什么。
main()
{ int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a)
{ case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");break;
default:printf("error\n");
}
}
7、由键盘输入三个整数2,-6,4分别给变量a、b、c,输出结果是什么。#include<stdio.h>
#include<math.h>
main()
{ int a,b,c,max;
scanf("%d,%d,%d",&a, &b,&c);
max=a;
if(abs(max)<abs(b)) max =b;
if(abs(max)<abs(c)) max=c;
printf("max=%d\n",max);
}
}
}
8、阅读以下程序后,写出运行结果。
#include<stdio.h>
main()
{ int x=1,y=1,a=10,b=10;
switch(x)
{ case 1:
switch(y)
{ case 0:a++;break;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论