C语言程序设计模拟题_第1页
C语言程序设计模拟题_第2页
C语言程序设计模拟题_第3页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、中国地质大学(北京)继续教育学院2015年 05 课程考试 C 语言程序设计模拟题(补)一、简答题1、简述 C语言程序的结构。二、选择题1、下面程序段的输出结果是【1】。int a=60;a+=a-=a+a;printf( “%d n”,a);A)120B)60C)-120D)-602、 下面正确的字符常量是【2】。A)cB)/ C)“w”D)3、 以下不能用作标识符的是【3】。A)_26B)ScanfC)caseD)Double4、 下面程序段中循环体执行的次数是【4】。int a=10, b=0;do b+=2; a-=2+b; while(a>=0);A) 1B) 2C) 3D)

2、45、 以下关于函数的叙述正确的是【5】。A) 函数中必须要有 return 语句B) 函数中可以有多个 return 语句,但只有一个被执行C) return 语句中必须有一个表达式第 1页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试D) 函数中定义的变量不能与其它函数中的变量同名6、 满足 x 为奇数时值为真,x 为偶数时值为假的表达式是【6】。A)!(x%2=1)B)x%2=0C)x%2D)!(x%2)7、 以下语句中无法正确赋值的是【7】。A)char b10=H, e, l , l , o, ! ;B)char b10; b=“Hello!”;C)char

3、 b10; strcpy(b,“Hello! ”);D)char b10=“Hello! ”;8、 若有以下的定义和语句,则值为5 的表达式是【 8】。int a=1,2,3,4,5,6,7,8,9,10;A)a5B)aa4C)aa3D)aa59、 若有定义: intk=7;floata=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是【 9】。A) 2.750000B) 2.500000C) 3.500000D) 0.00000010、 已知 ch 是字符型变量,下面正确的赋值语句是【10】。A)ch=”B)ch=123C)ch=xff D)ch= 0811、 下面

4、程序的运行结果是:【11】。void main()char c= a;if(0<=c<=9) printf(“YES”);else printf(“NO”);第 2页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试A) 语句有错误B) NOC) YESNOD) YES12、 已知: int a=4,b=5,c;则执行表达式c=a=a>b 后,变量a 的值为【 12】。A)0B)1C)4D)513、 以下程序的运行结果是【13】。#include <stdio.h>void main() int x1=3,x2=1,x3=1;if(x1=x2

5、+x3) printf(“* ”);elseprintf(“#”);A)存在语法错误B)无输出结果C)输出 *D)输出 #14、 下面程序段的输出结果是【14】。#include <stdio.h>char p110= “abc”, p2=“ABC”, str50=“xyz”;strcpy(str+2, strcat(p1,p2);printf( “%s n”,str);A)xyabcABCB)zabcABCC)yzabcABCD)xyzabcABC15、 设有: int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>

6、d) 后 n 的值为【 15】。A)1B)2C)3D)016、若已定义x 和 y 为 double 类型,则表达式:x=1, y=x+3/2 的值是【 16】。第 3页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试A)1B)2C)2.0D)2.517、 以下程序段的输出结果为【17】。int x=1,y=2;void fun1() x=3; y=4; void fun2(int x,int y) printf( “%d,%d n”,x,y); void main() fun1(); printf(“%d,%d,”,x,y);fun2(5,6);A)3,4,5,6B)1

7、,2,5,6C)1,2,3,4D)3,4,1,218、 下面程序执行时,while的循环次数是【18】。int i=0;while(i<10)if(i<1) continue;if(i=5) break;i+;A) 1B) 10C) 6D) 死循环,不能确定次数19、 对一维数组a 的说明语句中正确的是【19】。A)int a(10)B)int n=10;an;C)#define SIZE 10D)int n;第 4页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试int aSIZE;scanf( “%d”,&n);int an;20、 若调用一个函

8、数, 且此函数中没有return语句,则该函数【 20】。A)没有返回值B)返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值21、下列运算符中优先级最高的是【21】。A )! B)% C)= D )&&22、若 int j=10;执行下列程序后 , 变量 j 的正确结果是【22】。switch(j) case 9: j+=1;case 10: j+=1;case 11: j+=1;default: j+=1;A) 10B) 11C) 12D) 1323、下列程序的运行结果是【23】。int ii,x33=1,2,3,4,5,6,7,8,9;for(ii

9、=0;ii<3,ii+)printf( “%d”,xii2-ii);A) 1,5,9B) 1,4,7C) 3,5,7D)3,6,924、在定义 int a10;之后 , 对 a 的引用正确的是【24】。A) a10B) a6,3C) a(6)D) a10-1025、在定义了 a23之后 , 对 a 的引用正确的是【25】。A)a(1,2)B) a1,3C) a1>2!1D) a2026、设有程序段int k=10;第 5页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试while (k=0) k=k-1;则下面描述中正确的是:【26】A) while循环执行

10、10 次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次27、判断两个字符串s1 和 s2 相等的正确语句是【27】。A) if(s1=s2)B) if(s1=s2)C) if(strcpy(s1,s2)D) if(strcmp(s1,s2)=0)28、以下正确的字符常量的定义为【】。A、 cB、“ cj ”C、 abcD、29、若 x、y 都是 int型变量,且 x=100,y=200, 则 printf(“ %d” ,(x,y);的输出结果是 【】。A)200B)100C)100 200D)不确定30、运行以下程序,如果从键盘输入ABCDE<回车 >,则输出结

11、果是【】 。#include <stdio.h>int funch (char str)int num=0;while( strnum!= 0 ) num+;return (num);void main( )char str10;gets(str);printf(“%dn” ,funch(str);第 6页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试A)7B)6C)5D)431、为表示关系x>=y>=z, 下面 C 语言表达式中正确的是【】。A)(x>=y)&&(y>=z)B)(x>=y)and(y>=

12、z)C)(x>=y>=z)D)(x>=y)&(y>=z)32、下面程序段的输出结果是【】。int x=2,y=0,z;x*=3+2; printf(“%d ”,x);x*=y=z=4; printf(“%d”,x);A)8 40B)10 40C)10 4D)8 433、下列程序段的输出结果为【】。int a=9;a+=a-=a+a;printf( “%d n”,a);A)18B)9C)-18D)-934、设有整型变量a 的值为 5,使整型变量b 的值不为 2 的表达式【】 。A)b=a/5B)b=6-(-a)C)b=a%2D)b=(a-a-,a/2)35、语句

13、printf(“ahi yn”) 的输出结果为【】 。A)hi ybouB)hi ybouC)re hi youD)abre hi ybou36、设 a,b,c,d 均是 int型变量,为了使以下程序输出为:1234+123+12+1,正确的输入形式应当为【】 。scanf( “%4d+%3d+%2d+%1d”,&a,&b,&c,&d);printf(“%4d+%3d+%2d+%1d”,a,b,c,d);A)1234123121<回车 >B)1234123412341234<回车 >C)1234+1234+1234+1234<回车

14、>D)1234+123+12+1<回车 >37、以下程序的输出结果是【】。第 7页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试void main()int a=1,b=1;switch (a+b) case 2 : printf("*n");case 3 : printf("*n");A)*B)*C)*D)*38、分析以下程序,以下程序【】。void main()int x=5,a=0,b=0;if(x=a+b)printf(“ *n ” );elseprintf(“ #n ” ); A)有语法错 , 不能通

15、过编译B)通过编译 , 但不能连接C)输出 *D)输出 #39、假定所有变量均已正确说明,下列程序段运行后x 的值是【】。a=b=c=0;x=35;if(! a) x=-1;else if(b);if(c) x=3;else x=4;A)-1B)4C)35D)340、下面程序运行的结果是【】。#include <stdio.h>void main()int i,j,x=0; for(i=0;i<2;i+)第 8页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试x+;f or(j=0;j<=3;j+)if(j%2) continue; x+; x+

16、;printf(“x=%d n”,x);A)x=4B)x=8C)x=6D)x=1241、下面程序的运行结果是【】。#include“stdio.h”void main()int i,j,a=0; for(i=0;i<2;i+)for(j=0;j<4;j+)if(j%2) break; a+; a+;printf( “%d n”,a);A)4B)5C)6D)742、下面程序的运行结果是【】。void main()char ch7=“12ab56”;int i,s=0;for(i=0;chi>= 0&&ch i <= 9;i+=2)s=10*s+chi-0;

17、第 9页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试printf( “%d n”,s);A)1B)1256C)12ab56D)743、下面程序的运行结果是【】。void main()char a= “morning ”,t; int i,j=0; for(i=1;i<7;i+)if(aj<ai)j=i;t=aj;aj=a7;a7=aj;puts(a);A) mogninrC) morning44、以下正确的函数说明形式是【】。A) double fun(int x,int y)C) double fun(int x,int y);45、以下程序的输出结果

18、是【】。void fun(int a, int b, int c) a=456; b=567; c=678; void main()int x=10, y=20, z=30; fun (x, y, z);printf("%d,%d,%d", x, y, z);A) 30,20,10C) 456,567,678B) moD) morninB) double fun(int x;int y)D) double fun(int x,y);B) 10,20,30D) 678,567,456三、程序选择题第 10页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考

19、试1、 下面程序是从键盘中输入学号,然后输出学号中百位数字为3 的学号,输入0 时结束循环,请选择填空。#include <stdio.h>void main()long int num;scanf( “%ld”,&num);doif(【 1】) printf(“%ld”,num);scanf( “%ld”,&num);while( 【 2】 );【 1】A)num%100/10=3B)num/10%10=3C)num%10/10=3D)num/100%10=3【 2】A)!numB)!num=0C)num>0=0D)!num!=02、 下面程序段的运行结果是

20、【3】。(其中表示空格)char c5=a, b, 0, c, 0;printf(“%s”,c);【 3】A)a bB)abC)ab cD)abc3、下列程序的运行结果是【4】。int i, x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)printf(“%d”,xi2-i);【4】A)1,5,9B)1,4,7C)3,5,7D)3,6,94. 下面的程序将字符串s 中的每个字符按升序插入到数组a 中,请选择填空。#include <stdio.h>#include <string.h>第 11页(共 21页)中国地质大学(北京)继续教育学

21、院2015年 05 课程考试void main()char a20=“ cehiknqtw ” ; char s=“ bafl ” ;int i,j,k;for(k=0;【 5】 ;k+) j=0;while(sk>=aj&&aj!= 0 ) j+;for(【6】 ) ai+1=ai;aj=【7】 ;puts(a);【 5】A)sk!= 0B)sk!= 0C)sk=0D)sk!=0【 6】A)i=strlen(a)+k;i>=j;i-B)i=strlen(a); i>=j;i-C)i=j; i<=strlen(a)+k; i+D)i=j; i<=s

22、trlen(a); i+【 7】A)akB)sk+1C)skD)sk-15. 下面程序的功能是找出数组中的最大值和此元素的下标,请选择填空。#include <stdio.h>void main()int a10=4,6,8,2,0,9,23,5,67,1,k,p;【8】;for(k=1;k<10;k+)if(ak>ap)【 9】;printf(”最大值 =%d, 下标 =%dn” ,ap,【 10】 );【 8】A)p=a0B)p=0C)p=1D)p=a(0)【 9】A)p=kB)ap=akC)ak=apD)k=p第 12页(共 21页)中国地质大学(北京)继续教育学

23、院2015年 05 课程考试【 10】A)kB)pC)akD)ap四、填空题1、 以下程序求解百钱百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元三只,用一百元买一百只鸡,且必须有公鸡、母鸡和小鸡,求解所有可能的方案。请填空。#include <stdio.h>void main()【 1】 ;n=0;for(i=1;i<=18;【2】 ) for(j=1;j<=31;j+) k= 【3】 ;if( 【 4】 =300) n+;printf(“n=%d,cock=%d,hen=%d,chn”,n,i,j,k);2、以下程序段的输出结果是【 5】。int k, j, s;f

24、or(k=2;k<6;k+,k+) s=1; for(j=k;j<6;j+) s+=j;printf(“%d n”,s);第 13页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试3. 输入一个整数 10,以下程序的运行结果是【 6】。#include<stdio.h>main() int a, e10, c, i=0;printf(“输入一个整数n”);scanf( “%d”, &a);while(a!=0) c=sub(a); a=a/2; ei=c; i+;for(;i>0;i-)printf(“%d”, ei-1);sub(

25、int a) int c; c=a%2; return c;4、下面的函数invert的功能是将一个字符串的内容颠倒过来.void invert(char str) int i, j,【7】 ;for(i=0,j=strlen(str);【 8】 ;i+,j-) k=stri;stri=strj;strj=k;5、在 C 语言中,要求对所有用到的变量,遵循先定义后【9】的原则。6、 C 语言规定,可执行程序的开始执行点是【10】。第 14页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试7.设 float x=2.5,y=4.7; int a=7;,则表达式x+a%3*

26、(int)(x+y)%2/4的值为【 11】。8. 判断变量 a、 b 的值均不为 0 的逻辑表达式为【 12】。9.整型变量m的值为 27,语句 printf("m=%x",m);的输出结果为【13】。10.如定义语句为char a="windows ",b="95",语句 "printf("%s",strcat(a,b);"的输出结果为【14】。11 int i=234,j=567;函数 printf("%d%dn",i,j)的输出结果是【15】。12.求 1 至 100

27、 的和,程序应写成 for(s=0,i=1;【 16】 ;+i) s+=i;13.定义 a 为长度为 10 的字符串, 同时为字符串赋初值 "continue"的语句为 【 17】。14. 已知方程 ax 2+bx+c=0 系数 a、 b、c 且存在两个实根,计算其中一个实根的算术表达式为【 18】。15.若 s='d',执行语句s=(s>='a'&&s<='z')?s-32:s;字符变量s 的值为【 19】。16.函数 change 定义如下,若a=10、 b=5,执行 change(a,b)后

28、a、 b 的值分别为【 20】。void change(int a,int b) int t=0; t=a; a=b; b=t;四、阅读程序题1、以下程序的输出结果是。#include <stdio.h>int fun(int n)int r;if(n=1|n=2)r=1;elser=fun(n-1)+fun(n-2);第 15页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试return r;void main()printf("%dn",fun(8);五、编程题1. 输入 10 个数据,用选择法对 10 个数由小到大排序,并输出。2.

29、写一个函数, 用于求 n 个学生的平均成绩: 并设计主函数, 定义一个一维数组score 里面存放 10 个学生的成绩,输出这10 位学生的平均成绩。3.有一个 3*4 的矩阵, 要求编写程序求出其中值最大的那个元素的值,以及所在的行号和列号。4.写一个函数,求 10 个学生的平均成绩:并设计主函数,定义一个一维数组score 里面存放 10 个学生的成绩,输出这10 位学生的平均成绩。5.求 Fibonacci 数列的前 40 个数。 1, 1, 2,3, 5, 8, 13 。参考答案:一、简答题1、 1)一个程序由一个或多个源程序文件组成。预处理指令、全局声明、函数定义。2 )函数是 C

30、程序的主要组成部分。3 )一个函数包括两个部分:函数首部和函数体(声明部分和执行部分)。4 )程序总是从 main 函数开始执行的。5)程序中对计算机的操作是由函数中的C 语句完成的。6 )在每个数据声明和语句的最后必须有一个分号。7 ) C 语言本身不提供输入输出语句。第 16页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试8 )程序应当包含注释。二、选择题(本大题共35 小题,每小题1 分,共 35 分)。对每一个【】,从 A)、 B)、 C)、D)四个供选择的答案中,选出一个正确的答案。12345678910CACCBCBCBC11121314151617181

31、920DACABCADCD21222324252627282930ADCDCCDAAC31323334353637383940ABCCCDADBB4142434445AABCB三、程序选择题12345678910DBCCDBCBAB四、填空题1int i,j,k,n2i+3100-i-j43*5*i+3*3*j+k510610107k8i<j9使用10main ()函数112.512a!=0&&b!=013m=1b14windows 951523456716i<=10017char18(-b+sqrt(b*b-4*a*c)a10="continue&quo

32、t;/2/a19'D'20a=10, b=5四、阅读程序题1、 21第 17页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试五、编程题1.#include<stdio.h>int main()void sort(int array,int n);int a10,i;printf("enter array:n");for(i=0;i<10;i+)scanf("%d",&ai);sort(a,10);/调用 Sort 函数, a 为数组名, 大小为 10printf("The so

33、rted array:n");for(i=0;i<10;i+)printf("%d ",ai);printf("n");return 0;void sort(int array,int n)int i,j,k,t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(arrayj<arrayk)k=j;t=arrayk;arrayk=arrayi;arrayi=t;2.方法一:#include<stdio.h>int main()float average(float array1

34、0);/函数声明float score10,aver;int i;printf("input 10 score:n");for(i=0;i<10;i+)scanf("%f",&scorei);第 18页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试printf("n");aver=average(score);/ 调用 average 函数printf("average score is %5.2fn",aver);return 0;float average(float a

35、rray10)/定义 average 函数int i;float aver,sum=array0;for(i=1;i<10;i+)sum=sum+arrayi;/累加学生成绩aver=sum/10;return(aver);方法二:#include<stdio.h>int main()float average(float array,int n);float score10=67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5;/定义长度为10 的数组printf("The average of class B is %6.2fn&q

36、uot;,average(score,10); /用数组名 score 和 10 作实参return 0;float average(float array,int n)/定义 average 函数,未指定形参数组长度int i;float aver,sum=array0;for(i=1;i<n;i+)sum=sum+arrayi; /累加 n 个学生成绩 aver=sum/n;return(aver);3. 题#include<stdio.h>int main()第 19页(共 21页)中国地质大学(北京)继续教育学院2015年 05 课程考试int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;/ 定义数组并赋初值max=a00;/ 先认为 a00最大for(i=0;i<=2;i+)for(j=0;j

温馨提示

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

评论

0/150

提交评论