您的当前位置:首页正文

《C语言程序设计》

2022-11-05 来源:易榕旅网
说明: 请考生将答案写在“武汉大学答题纸”上并标明题号,否则不得分。试

卷中C语言程序的开发环境是VC 6。

一、选择题(共20小题,每小题2分,共40分)

1. 以下正确的C语言自定义标识符是______。 A) _1a B) 2a_ C) do 2. 温度华氏和摄氏的关系是: C=

D) a.12

5(F-32)。已知:float C,F;由华氏求摄氏的正确计算的表9达式是____。 A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确

3. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_________。 A) scanf(\"%5.2f\ B) scanf(\"%d\C) scanf(\"%f\ D) scanf(\"%f\

4. 一个C程序的执行是从( )

A) main()函数开始,直到main()函数结束 B) 第一个函数开始,直到最后一个函数结束 C) 第一个语句开始,直到最后一个语句结束 D) main()函数开始,直到最后一个函数结束

5. 判断char型变量c1是否为数字的正确表达式为 ________。 A) 0<=c1<=9 B) c1>=0 &&c1<=9 C) ‘0’<=c1<=’9’ D) c1>='0'&&c1<='9'

6. switch(表达式)语句中的“表达式”,允许的类型是_________。 A) float, int B) float, int, char

C) int, char D) char, double

7. 设int i,j, x=0;

for(i=5;i;i--) for(j=0;j<4;j++)

x++;

则循环体结束后,x的值为________。 A) 5 B) 20 C) 25 D) 死循环

8. 设x和y均为int型变量,则执行下面的循环后,y值为_________。 for(y=1,x=1;y<=50;y++)

{

if(x>=10)break;

if (x%2==1)

{

x+=5; continue;

} A) 5 B) 6 C) 50 D) 51

9. 设有数组定义:int a[5];则下列给数组元素赋值错误的是________.

A) a[3]=93;

B) scanf(\"%c\C) a[3]=a[0]+a[1]; D) a[3]='a'+3;

10. 若用数组名作为函数调用时的实参,则实际上传递给形参的是________ 。 A) 数组首地址 B) 数组的第一个元素值 C) 数组中全部元素的值 D) 数组元素的个数

11. int a[2][3]={{1},{2,3}};,则a[1][1]的值是_________。 A) 0 B) 1 C) 2 D) 3

12. 若定义数组并初始化int b[10]={ 1,2,3,4},以下说法错误的是________ A)b[8]的值为0 B)b[1]的值为1 C)b[3]的值为整数

D)b[10]不是b数组中的元素

13. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_________。 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

14. 在C语言中,下列错误的说法是_______。 A) 函数可以递归调用

B) 不允许在函数定义中再定义函数 C) 递归程序不可能用非递归算法实现

D) 对于continue语句,可以通过改变程序的结构而不使用它

15. 在一个源文件中定义的全局变量的作用域为( )。

A)本文件的全部范围。 B)本程序的全部范围。

C)本函数的全部范围。 D)从定义该变量的位置开始至本文件结束

欢迎下载

2

} x-=3;

16. 有以下程序 void main() {

int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++)

printf(\"%d\}

程序执行后的输出结果是______。

A)753 B)357 C)369 D)751

17.若有说明float *p,m=3.14;则能正确表示p指向m的赋值语句是________。 A) p=m; B) p=&m; C) *p=m; D) *p=&m;

18. 若有下列定义:int a[5],*p=a; 则能正确表示a数组某个元素地址的是______。 A) &a B) p+2 C) a++ D) &a[5]

19. 若有以下说明,则*(a+a[3])的值为__________。 int a[10]={ 9,1,8,2,7,3,6,4,5,0}; A)1 B) 2 C) 8 D) 11

20. C语言中,函数返回值的类型是由______决定的。 A) 调用函数时动态决定的 B) return语句中的表达式类型 C) 调用该函数的主调函数类型 D) 定义函数时,所指定的函数类型

二、填空题(共7小题10空,每空2分,共20分)

1.已知int x=5,y=1,z=2;执行语句x%=y+z;后,x的值是___(1)___。

2.设int a[3][4]={{1,2,3,4},{5,6,7},{8,9}};则表达式a[1][2]+a[2][3]的值是____(2)____。3. 学生成绩的字每等级和分数范围如下: 字母等级 分数范圈 A 90~100 B 80~89 C 70~79 D 60~69 E 0~59 其它字母 输入错误

下列程序输入字母等级之后,输出相应的分数范围。 #include void main() {

欢迎下载

3

char score; scanf(\"%c\ switch(____(3)______) {

case 'A': printf(\"A:90~100\\n\"); break;; case 'B': printf(\"B:80~89\\n\");break; case 'C': printf(\"C:70~79\\n\");break; case 'D': printf(\"D:60~69\\n\");break; case 'E': printf(\"E:0~59\\n\");break; ____(4)____: printf(\"输入错误\\n\"); } }

4. 设x为int型变量,请写出一个关系表达式____(5)____,用以判断x能同时被3和5整除时,关系表达式的值为真。

5. 对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。 #include #define N 10 void main() { int i,a[N];

for(i=N-1;___(6)___;i--)

scanf(\"%d\

for(i=0;i6. 下面程序的功能是显示具有N个元素的数组s中的最大元素。 #define N 20 int fmax(int s[],int n) { int k=s[0],i; for(i=1;i欢迎下载

4

if (____(7)_____) k=s[i] ; return(k); }

void main() { int i,a[N]; for(i=0;iprintf(\"%d\\n\; //调用函数fmax }

7. 若有 int a[5]={10,20,30,40,50}, *p=a,*s=a+2;

则表达式s-p的值是____(9)_____,*s-*p的值是___(10)______。

三、程序阅读,写出下列程序的运行结果(共10小题,每小题2分,共20分)

(下列程序均包括 #include\"stdio.h\") 1. void main() { int x,y;

scanf(“%d,%d”,&x,&y); if (x>20||x<-10) if(y<=100&&y>x) printf(\"Good\"); else

printf(\"Bad\"); }

如果输入30,150, 输出为( ) 2. main() { int a=0,i;

for(i=0;i<4;i++) { switch(i)

{

case 0: case 1:a++;

欢迎下载

5

case 2:a+=2; default:a+=3; } }

printf(\"%d\\n\}

3. void main() { int x,y;

scanf(\"%d\do{

y=x%10; printf(\"%d\x/=10; } while(x); }

输入整数12345

4. void main() { int i=5; for ( ;i<15; ) { i++;

if (i%3==0||i%2==0) continue; printf(\"%d \

} }

5. void main() { int a=14, b=63; while (a!=b)

{while (a>b) a-=b; while (a欢迎下载

6

}

printf (\"%d\\n\ }

6. void main() {

int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)

for(j=0;j<=i;j++)

s+=a[i][j];

printf(\"s=%d\}

7. int f(int x) {return x+3;} void main() {int a=1; while(f(a)<10) a++;

printf(“a=%d\\n”,a) }

8. int f(int b[],int n) { int i,r=1;

for(i=0;i<=n;i++) r=r*b[i]; return r; }

void main()

{ int x,a[]={1,2,3,4,5,6}; x=f(a,3); printf(\"%d\\n\

欢迎下载

7

}

9. funa(int a) { int b=1;

static int c=1; a+=c+b; b++;c++; return(a); }

void main() { int i,k=0;

for(i=1;i<3;i++)

k+=funa(i); printf(\"%d\\n\; }

10. void main() {

int a[]={1,2,3,4,5},*p; p=a; (*(p+1))++;

printf(\"%d,%d\\n\ }

四、编程题(共2小题,每小题10分,共20分)

1. 请编写程序计算并输出n(包括n)以内能被3或5整除的所有自然数的倒数之和,n从键盘输入值。

2. 请编写函数int primesum(int x[],int n)求一组数x[]中所有质数的和, n为这组数的个数,在主函数中输入数据并调用该函数。

欢迎下载 8

因篇幅问题不能全部显示,请点此查看更多更全内容