C语言考试试卷及答案
C语言程序设计A 课程 A卷 考试题
共 4 页 此 第 1 页 成绩
一、单项选择题(每小题2分,共40分)
1. C语言中合法的字符常量是( )
A.n B.’ ’ C.110 D.”n”
2. 有以下程序:
main( )
{ char ch=’A’;
printf(“ch(1)=%d,ch(2)=%c ”,ch,ch+1); }
程序运行后的输出结果是 ( )
A. ch(1)=65,ch(2)=A B. ch(1)=97,ch(2)=A
C. ch(1)=65,ch(2)=B D. ch(1)=97,ch(2)=B
3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是(
A. a==-b&&a%2==0 B. a!=b&&a+b==0&&a%2
C. !(a%2)&&a==-b D.a%2==0&&a+b==0
4. 以下程序段中语句” printf("i=%d,j=%d ",i,j);”的执行次数是( ) int i, j;
for(i=3;i ;i--)
for(j=1;j<5;j++) printf("i=%d,j=%d ",i,j);
A. 12 B. 20 C. 15 D. 24
5. 执行以下程序段后,x[2]的值是( )
int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t;
i=0;j=9;
while(i<j)
{ t=x[i]; x[i]=x[j]; x[j]=t;
i++; j--; }
A. 8 B. 2 C. 3 D. 9
6. 判断字符串”abcd”和”ab cd”是否相等,应使用的语句是( )
A. if (“abcd”==”ab cd”) B. if (abcd==ab cd)
C. if (strcmp(“abcd”,”ab cd”)) D. if (strcmp(abcd,ab cd))
7. 若有定义“int *p,*q,a=2,b;”,则以下正确的赋值语句组是( )
A. p=&a; *q=*p; B. *p=a;*q=b;
C. p=&a;q=&b;*p=*q; D. p=&a;q=&b;*q=*p;
8. 以下说法错误的是( ) )
A. C程序中可以只包含一个main函数
B. C程序由一个main函数和若干个其他函数构成
C. C程序中可以没有main函数,但至少应包含一个其他函数
D. C程序由函数组成,函数是构成程序的基本单位
9. 以下选项中,能用作用户标识符的是( )
A. void B. 8_8 C. _0_ D. unsigned
10. 表达式:(int)((double)9/2)-(9)%2的值是( )
A. 0 B. 3 C. 4 D. 5
11. 有以下程序:
#include
void main()
{ int a,b,c=200;
a=c/10%9; b=!a||(a-2); printf("%d,%d ",a,b); }
A. 0,1 B. 2,1 C. 0,0 D. 2,0
12. “==”代表C语言中的( )
A. 条件运算符 B. 逻辑运算符 C. 关系运算符 D. 赋值运算符
13. .若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )
A. 1 B. 0 C. 2 D. 不知道a的值,不能确定
14. 有以下程序:
#include
void main()
{ int a=12,b=20,t=18;
if(a>b)
t=a;a=b;b=t;
printf("a=%d,b=%d,t=%d ",a,b,t); }
程序运行后的输出结果是( )
A. a=12,b=20,t=18 B. a=20,b=18,t=18 C. a=20,b=12,t=12 D. a=20,b=18,t=12
15. 执行以下程序后的输出是( )
#include
void main()
{ int x,y;
for(x=1,y=1;x<=20;x++) 5="=1){" y="">=20) break; 程序运行后的输出结果是( )
y=y-1;
}
printf("x=%d,y=%d ",x,y); }
A. x=5,y=21 B. x=4,y=21 C. x=5,y=20 D. x=4,y=20
16. 凡是函数中未指定存储类别的局部变量其隐含的存储类别是( )。
A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)
17. C语言中用于结构化程序设计的三种基本结构是( )
A.. 顺序结构、选择结构、循环结构 B. if、switch、break
C. for、while、do-while D. if、for、continue
18. 在while(x)语句中的x与下面条件表达式等价的是:( )
A. x!=0 B. x==1 C. x!=1 D. x==0
19. 若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的`为( )
A. *(a+j*n+i) B. *(a+i*n+j) C. *(*(a+i)+j) D. *(*a+i)+j
20. 若有以下调用语句,则不正确的fun函数的函数原型是( )
void main()
{ …
int a[50],n;
?
fun(n, &a[9]);
? }
A. void fun(int m, int x[]); B. void fun(int s, int h[41]);
C. void fun(int p, int *s); D. void fun(int n, int a);
二、程序填空(每空2.5分,共20分)
1. 下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。请在横线上填上适当的程序代码,使它能输出正确的结果
#include
void main ()
{ int i=0;
}
2. 以下程序的功能是计算1!+2!+3!+?20!的值,请填空 char str[80]; scanf("%s",str); while( ) { if( ) str[i]=str[i]-32; } printf("%s ",str);
#include
long fun(int t)
{ long a=1;
{
int n;
long sum=0,s;
for(n=1;n<=20;n++)
{ s=fun(n); }
printf("sum=%ld ",sum);
}
3. 以下程序的功能是用“辗转相除法”求两个正整数的最大公约数,请填空 #include
void main()
{ int r,a,b;
scanf("%d%d",&a,&b);
if(a<b)
{ r=a%b;
while(r!=0)
{ }
printf("%d ",b);
} int n; n++) return a; } void main
三、分析程序题(每空4分,共20分)
1. 以下程序运行后的输出结果是
#include
void main ()
{ int t;
for(t=1; t<=100; t++)
{ printf("%d ",t); if(t%2==1 && t%5==3) break; } }
2. 以下程序的功能是
#include
void main()
{ int n,s=0;
} scanf("%d",&n); while(n) { } printf("%d",s); s++; n=n/10;
3. 以下程序运行后,若输入5 5<回车>,则程序的输出结果是#include
void main()
{ int a,b;
scanf("%d%d",&a,&b);
}
4. 以下程序运行后的输出结果是
#include
void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int i,*p,s=0;
p=&a[0];
for(i=0;i<10;i++)
}
5. 以下程序运行后的输出结果是
#include
void main
{ int a[5]={1},i;
for(i=1;i<5;i=i+2)
a[i]=2*i; if((*(p+i))%3==0) s=s+*(p+i); if (a>6) if(a<10) else="" if="" b="">6) { if(b<10) b++; } else b--; printf("a=%d,b=%d ",a,b); printf("%d ",s);
【C语言考试试卷及答案】相关文章: