C语言考试试卷及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D. void fun(int n, int a);
二、程序填空(每空 2.5 分,共 20 分)
1. 下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。请在横
线上填上适当的程序代码,使它能输出正确的结果
#include <stdio.h>
void main ()
{ int i=0;
int n;
printf("n=");
scanf("%d",&n);
printf("Fibonacci(%d): %ld\n",n,fib(n));
}
long fib(int n)
/* 定义求 Fibonacci 数的函数 */
{
if(n==1||n==2)
return(1);
else
return(fib(n-1)+fib(n-2));
2011-2012 学年 第 一 学期
C 语言程序设计 A 课程 A 卷 考试题
共 4 页 此 第 1 页 成绩
一、单项选择题(每小题 2 分,共 40 分)
1. C 语言中合法的字符常量是(
)
A.n
B.’\n’ C.110 D.”n”
2. 有以下程序:
main( )
{ char ch=’A’;
printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); }
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
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\n",i,j);”的执行次数是(
)
int i, j;
for(i=3;i ;i--)
for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j);
}
四、程序设计(共 20 分)
1. 请编写程序,输出 1~1000 之间能被 11 整除且个位数为 5 的所有整数,要求每个输出 值之间有空格,输出结果后光标显示在下一行。 2. 利用递归函数计算 Fibonacci 数列的第 n 个数。要求设计递归函数,在主函数 main()中 输入数据 n,然后调用 fib()函数求得第 n 个 Fibonacci 数,并输出结果。fib(n)的递归公式 如下:
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);
if(a<10) a++; else a--; if (b>6) { if(b<10) b++; } else b--; printf("a=%d,b=%d\n",a,b); } 4. 以下程序运行后的输出结果是 ④ #include <stdio.h> 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++) if((*(p+i))%3==0)
{ if(y>=20) break;
if(y%5==1){ y=y+5; continue; }
y=y-1;
}
printf("x=%d,y=%d\n",x,y); }
A. x=5,y=21
B. x=4,y=21 C. x=5,y=20 D. x=4,y=20
16. 凡是函数中未指定存储类别的局部变量其隐含的存储类别是(
void main()
{ int a,b,c=200;
a=c/10%9;
b=!a||(a-2);
printf("%d,%d\n",a,b); }
程序运行后的输出结果是(
)
A. 0,1
B. 2,1
C. 0,0
D. 2,0
12. “==”代表 C 语言中的(
)
A. 条件运算符 B. 逻辑运算符 C. 关系运算符 D. 赋值运算符
{ int n,s=0;
scanf(ຫໍສະໝຸດ Baidu%d",&n); while(n) { s++;
n=n/10; } printf("%d",s); } 3. 以下程序运行后,若输入 5 5<回车>,则程序的输出结果是 ③ #include <stdio.h> void main() { int a,b; scanf("%d%d",&a,&b); if (a>6)
s=s+*(p+i); printf("%d\n",s); } 5. 以下程序运行后的输出结果是 ⑤ #include <stdio.h> void main() { int a[5]={1},i; for(i=1;i<5;i=i+2)
a[i]=2*i;
for(i=0;i<5;i++) printf("%d ",a[i]);
1. 请编写程序,输出 1~1000 之间能被 11 整除且个位数为 5 的所有整数,要求每个输出
值之间有空格,输出结果后光标显示在下一行
#include <stdio.h> void main () { int a;
for(a=1;a<=1000;a++) if(a%11==0 &&a%10==5)
2. 利用递归函数计算 Fibonacci 数列的第 n 个数。要求设计递归函数,在主函数 main()中 输入数据 n,然后调用 fib()函数求得第 n 个 Fibonacci 数,并输出结果。fib(n)的递归公式 如下:
#include<stdio.h>
void main()
{ long fib(int);
程序运行后的输出结果是 (
)
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
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 <stdio.h>
程序运行后的输出结果是(
)
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 <stdio.h>
void main()
{ int x,y;
for(x=1,y=1;x<=20;x++)
#include <stdio.h>
void main()
{ int r,a,b;
scanf("%d%d",&a,&b);
if(a<b)
{⑦
}
r=a%b;
while(r!=0)
{ a=b;b=r; ⑧
}
printf("%d\n",b);
}
三、分析程序题(每空 4 分,共 20 分)
1. 以下程序运行后的输出结果是 ①
2、 ④ n<=t; 、 ⑤ a=a*n; 、 ⑥sum=sum+s;
3、⑦ r=a; a=b; b=r; 、 ⑧ r=a%b; 三、分析程序题(每空 4 分,共 20 分)
① 1 2 3 、 ② 统计一个正整数的位数 、
③ a=5,b=4 、 ④ 18 、 ⑤ 1 2 0 6 0
四、程序设计(共 20 分)
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
char str[80];
scanf("%s",str);
while( ① )
{ if( ②
) str[i]=str[i]-32;
③
}
printf("%s\n",str);
}
2. 以下程序的功能是计算 1!+2!+3!+…20!的值,请填空
#include <stdio.h>
long fun(int t)
#include <stdio.h>
void main ()
{ int t;
for(t=1; t<=100; t++)
{ printf("%d ",t); if(t%2==1 && t%5==3) break; } }
2. 以下程序的功能是 ②
#include <stdio.h>
void main()
printf("%d ",a); printf("\n"); }
----------------------- 0.5 分 ----------------------- 0.5 分
------------------------- 1 分 ------------------------- 2 分 ------------------------- 2 分 ------------------------- 1 分 ------------------------- 1 分
}
----------------------0.5 分 ---------------------- 0.5 分
----------------------- 1 分 ----------------------- 1 分 ----------------------0.5 分 ----------------------- 1 分 ----------------------- 2 分
13. .若 a 是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(
)
A. 1
B. 0
C. 2
D. 不知道 a 的值,不能确定
14. 有以下程序:
#include <stdio.h>
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\n",a,b,t); }
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;”,则以下正确的赋值语句组是(
{ long a=1;
int n;
for( n=1; ④
n++) ⑤
return a; }
void main ()
{
int n;
long sum=0,s;
for(n=1;n<=20;n++)
{ s=fun(n); ⑥
}
printf("sum=%ld\n",sum);
}
3. 以下程序的功能是用“辗转相除法”求两个正整数的最大公约数,请填空
)
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 函数,但至少应包含一个其他函数
)。
A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)
17. C 语言中用于结构化程序设计的三种基本结构是(
)
A.. 顺序结构、选择结构、循环结构
B. if、switch、break
C. for、while、do-while
D. if、for、continue
一、单项选择题(每小题 2 分,共 40 分) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BCBAACDCCBDCABA 16 17 18 19 20 AAACD
二、程序填空(每空 2.5 分,共 20 分)
1、 ① str[i]!=’\0’
、② str[i]>='a'&&str[i]<='z' 、 ③i++;