您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页c语言试卷2

c语言试卷2

来源:华佗小知识
成教计算机专科班(函授)

考试试卷1

课程:c语言程序设计 班级: 任课教师: 姓名: 学号: 考试时间:90分钟

题 号 满 分 得 分 一 30 二 20 三 50 四 五 六 满分 100

一. 选择题:(每小题2分,共30分) 1.以下选项中合法的字符常量是 A)“B” B) „\\010‟ C) 68 D) D

2. t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是

A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对 3.以下合法的赋值语句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b);

4. 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 pprintf(”%d,%d\\n”,x--,--y); A) 10,3 B) 9.3 C) 9.2 D)10.2 5.以下程序的输出结果是 main() { int a=3; printf(“%d\\n”,(a+a-=a*a) ); } A) –6 B)12 C) 0 D) -12

6. 设 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

7. 以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]=”test”; D) int n=5,a[n];

8.以下各选项企图说明一种新的类型名,其中正确的是 A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int;

9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 A) 地址传递 B) 单向值传递

C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 10.以下函数值的类型是 fun ( float x ) { float y; y= 3*x-4;

return y; }

A) int B) 不确定 C) void D) float 11.以下程序的输出结果是 main()

{ char c=‟z‟; printf(“%c”,c-25); }

A) a B) Z C) z-25 D) y

12. 以下数组定义中不正确的是 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}}; 13. 以下程序的输出结果是 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} 输出值不定 14. 以下程序的输出结果是 main()

{ char st[20]= “hello\\0\\\\\\\”; printf(%d %d \\n”,strlen(st),sizeof(st)); }

A) 9 9 B) 5 20 C) 13 20 D) 20 20 15.以下选项中,不能正确赋值的是 A) char s1[10];s1=“Ctest”;

B) char s2[]={„C‟, „t‟, „e‟, „s‟, „t‟}; C) char s3[20]=“Ctest”; D) char *s4=“Ctest\\n”

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

1. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 【 】。

2. 以下程序输出的最后一个值是【 】 。 int ff(int n) { static int f=l; f=f*n; return f; }

main() { int i;

for(I=1;I<=5;I++ printf(“%d\\n”,ff(i));

)

3.设有以下程序: main()

{ int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl==&m; b=(*p1)/(*p2)+7; printf(“a=%d\\n”,a); printf(“b=%d\\n”,b); } 执行该程序后,a的值为【 】 ,b的值为【 】 。

4. 若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i;

for(i=1; i<=10; i++) 【 】=i; for(i=0; i<5; i++) 【 】=a[i]; }

5. 若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式) while([i]){ d[j]= 【 】;j++;} d[j]=0;

6. 以下程序的输出结果是【 】 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); }

7. 以下程序运行后的输出结果是 【 】 。 main()

{ int i=10, j=0; do

{ j=j+i; i-; while(i>2); printf(“%d\\n”,j); }

8. 设有以下程序: main() { int n1,n2; scanf(“%d”,&n2);

while(n2!=0) { n1=n2%10; n2=n2/10;

printf(“%d”,n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为 【 】 。 9. 以下程序段用于构成一个简单的单向链表,请填空。 struct STRU { int x, y ; float rate; 【 】 p; } a, b;

a.x=0; a.y=0; a.rate=0; a.p=&b; b.x=0; b.y=0; b.rate=0; b.p=NULL; 10. 以下程序的输出结果是【 】 union myun { struct

{ int x, y, z; } u; int k; } a; main() { a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(%d\\n”,a.u.x); }

三、编程题:

1.编写程序判断m是否为素数。(10分)

2.用选择法对数组中10个整数由小到大排序。所谓选择法就是先将10个数中最小的数与a[0]对换,再将a[1]到a[9]中最小的数与a[1]对换。。。,每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。(15分) 3.有一个3╳4的矩阵,求所有元素中的最大值。(10分) 4.用递归方法求n!.(15分)

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

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务