C语言期中试题(2009春)WORD_第1页
C语言期中试题(2009春)WORD_第2页
C语言期中试题(2009春)WORD_第3页
C语言期中试题(2009春)WORD_第4页
C语言期中试题(2009春)WORD_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程号:0401023 C程序设计期中考试试卷考试形式:闭卷考试 考试时间:120分钟班号 学号 姓名 得分 一、选择题(每空2分,共40分)。对每一个【 】,从A、B、C、D四个供选择的答案中,选出一个正确的答案。1、 一个C程序的执行是从【 】。A)程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序的最后一个函数结束D)本程序的第一个函数开始,到本程序的main函数结束2、 下面程序段的输出结果是【 】。int a=9;a+=a-=a+a;printf(%dn,a);A)18 B)9C)-18 D)

2、-93、 若有定义:int k=7; float a=2.5 , b= 4.7; 则表达式 a + k%3*(int)(a+b)%2/4 的值是【 】。A)2500000 B)2.750000 C)3.500000 D)0.0000004、 有以下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一行开始输入数据的时候,正确的数据输入方式是【 】。(注:表示一个空格,表示回车)int a1,a2;char c1,c2;scanf(%d%c%d%c ,&a1,&c1,&a2,&c2);A)10A20B B)10A20BC)10A20B D)10A20B5、 已知ch

3、是字符型变量,下面正确的赋值语句是【 】。A)ch = “ ” B)ch =xff C)ch = 123 D)ch = 086、若希望当变量a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是【 】。A)a%2 = = 1 B)!(a%2 = = 0)C)!(a%2) D)a%27、设ch 是char 类型变量,其值是A,则以下表达式 ch =(ch =A& ch =Z)?(ch+a-A):ch 的值是【 】。A)Z B)A C)a D)z8、以下程序的运行结果为【 】。#include void main() int x1 = 3 , x2

4、= 1 , x3 = 1 ; if (x1=x2+x3) printf (“ * * * * ” ) ; else printf (“ # # # # ” ) ; A)输出* * * * B)输出# # # #C)存在语法错误 D)无输出结果9、若运行时输入2.0,则下面程序的输出结果是【 】。void main() float a, b;scanf(%f,&a);if(a0.0) b=0.0;else if(a0.5)&(a!=2.0) b=1.0/(a+2.0);else if(a10.0) b=1.0/a;else b=10.0;printf(%fn,b);A)0.000000 B)0.

5、500000 C)1.000000 D)0.25000010、执行程序段,则下面说法中正确的是【 】。x=-1;do x=x*x; while(!x);A)死循环 B)循环执行2次C)循环执行1次 D)有语法错误11、当输入为“quert?”时,下面程序的执行结果是【 】。#include void main() char c; c=getchar(); while(c=getchar()!=?) putchar(+c); A)quert B)vfsu C)quert? D)rvfsu?12、对一维整型数组a的说明语句中正确的是【 】。A)int a(10); B)int n=10,an;C)

6、int n; D)#define SIZE 10 scanf(%d,&n); int aSIZE; int an;13、下面程序的输出结果是【 】。 void main() int x=1,y=0,a=0,b=0; switch( x ) case 1:switch(y) case 0: a+; case 1: b+; break; case 2: a+; b+; break; printf(a=%d,b=%dn,a,b); A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=214、有定义语句:int i;int x33=1,2,3,4,5,6,7,8,9;,则下面语句的输

7、出结果是【 】。for(i=0;i3;i+) printf(%3d,xi2-i);A)159B)147C)357D)36915、下面程序的运行结果是【 】。void main() int i,j,a=0;for(i=0;i2;i+) for(j=0;j4;j+)if(j%2) break;a+; a+;printf(%dn,a);A)4 B)5 C)6 D)716、有两个字符数组a,b,则以下能正确为a,b数组进行赋值的语句是【 】。 A)gets( a, b) ; B)scanf(“%s%s”, &a ,&b) ;C)getchar(a); getchar(b); D)gets(a); ge

8、ts(b);17、以下能正确计算12310的程序段是【 】。A) do k=1;n=1; B) do k=1;n=0;n=n*k; n=n*k;k+; k+; while(k=10); while(k=10);C) k=1;n=1; D) k=1;n=0;do n=n*k; do n=n*k;k+; k+; while(k=10); while(k=10);18、不能把字符串:good! 赋给数组b的语句是【 】。A)char b10= g, o, o, d, ! ;B)char b10; b=good! ;C)char b10; strcpy(b, good! );D)char b10= g

9、ood! ;19、下面程序的运行结果是【 】。void main() char a=morning,t;int i,j=0;for(i=1;i7;i+) if(ajai)j=i;t=aj; aj=a7; a7=t; puts(a);A)mogninr B)mo C)morning D)mornin20、下面程序的输出结果是【 】。(注:表示一个空格)int f(int a) int b=0;static int c=3;b+; c+; return(a+b+c);void main() int a=2, i; for(i=0;i3;i+)printf(%3d,f(a);A) 777B) 710

10、13C) 7911D) 789二、程序选择填空题(每空 2分,共30分)1、 下面程序是从键盘输入学号,然后输出学号中百位数字是 3的学号,输入 0时结束循环。请选择填空。#includevoid main() long num; scanf(ld,&mum); do if(【1】) printf(ld,num); scanf(ld,&num); while(【2】); 【1】A) num%100/10=3 B) num/100%10=3C)num%10/10=3 D)num/10%10=3【2】 A)! num B)num0=0 C)! num=0 D)!num!=02、 下面程序的功能是找

11、出数组中的最大值和此元素的下标,数组元素的值由键盘输入。请选择填空。#include void main() int a10, k, p; for(k=0;k10;k+) sacnf(“%d”,【3】);【4】for(k=1;kap) 【5】printf(“最大值=%d,下标=%dn”,ap,p);【3】 A)ak B)a(k) C)&ak D)&a(k)【4】 A)p=a0; B)p=0; C)p=1; D)p=a(0);【5】 A)p=k; B)ap=ak; C)ak=ap; D)k=p;3、 下面程序的功能是用起泡法对10个数按由小到大的顺序排序。在程序中定义数组长度为11,a0不用,只

12、用a1到a10,以符合人们的习惯。请选择填空。#include void main() int i, j, temp, data 11; for(i=1;i=10;i+) scanf(%d,&datai); for(i=1; i=9;i+) for(j=1; 【6】;j+) if(【7】) temp=data j; data j=data j+1 ; data j+1=temp; for(i=1;i11;i+) printf(%d,data i);【6】 A) j=9 B) j=i C) j=10-i D) j=10【7】A) datajdataiC) datajdataj+14、 下面函数p

13、i的功能是:根据以下公式,返回精度满足0.0005要求的圆周率值。请选择填空。double pi()double s,t ; int n; for(【8】;t=0.0005; n+) s+=t; t=t*n/(2*n+1); return (【9】);【8】A)s=0,n=1,t=0 B)s=0,n=1,t=1 C)s=1,n=1,t=1 D)s=0,n=0,t=0【9】 A)s B)t C)2*s D)2*t5、 下面程序用来计算一个给定字符串str1的长度。请选择填空。#include void main() char str180; int num=0; gets(str1);while

14、(【10】) num+;printf(“字符串str1的长度为:%dn”, num); 【10】A)num=80 B)str1num!=0 C)str1num!=0 D)str1num!=n6、 以下程序用于求100200间的全部素数,并且每10个数据一行进行输出。请选择填空。其中变量n中存放素数的个数。 #include #include void main() int m, k, i, n=0;for(m=101;mk) ) printf(“%4d”,m); n+; if(【13】) printf(“n”); 【11】A)ik B)i=k C)im【12】 A)m/i=0 B)m%i=0

15、C)k/i=0 D)m%k=0【13】A)n %10=0 B)n/10=0C)i %10=0 D)n=107、 以下函数的功能是将字符串s1中除了空格以外的字符全部复制到数组s2中。请选择填空。 void delspace(char s1,char s2) int i, j; for(i=j=0; 【14】; i+)if(s1i!= ) s2j=s1i; j+; 【15】; 【14】A)s1j!=0 B)s1i!=0 C)s1j!=n D)s1i=n【15】 A)s1i=0 B)s1j=0 C) s2j=n D)s2j=0三、填空题(每空2分,共20分)1、下面程序实现如下功能:大奖赛十个评委

16、亮分,去掉一个最高分,去掉一个最低分,输出最后得分(平均分)。请将程序补充完整。#include void main() float avg,cj,maxcj,mincj,sum; int k; scanf(%f,&cj); maxcj=cj; mincj=cj; 【1】; for(k=1;k=9;k+) scanf(%f,&cj); sum=sum+cj; if(【2】) maxcj=cj; if(【3】) mincj=cj; avg= (sum-maxcj-mincj)/8; printf(“最后得分是:%6.2fn”,avg);2、下列函数的功能是用选择法对数组中的n个整数由小到大排序。

17、请填空。void sort(int array,int n) int i,j,k,t; for(i=0;in-1;i+) 【4】;for(【5】;jn;j+)if(【6】) k=j;if( k!=i ) t=arrayk; arrayk=arrayi; arrayi=t; 3、以下程序的功能是计算sum=0!+1!+2!+n!。请补足所缺语句。#include long f(int n) /* 该函数用递归法求n! */ long s; if(n=0|n=1) s=1; else s=【7】; return s; void main() long sum=0; int k, n; scanf(%d,&n); for(k=0;k=n;k+) sum=sum+【8】;printf(%ldn,sum); 4、下面程序的功能是在5个字符串中找出最小的字符串。请填空。#include #includevo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论