




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计模拟试卷A单项选择题(每题2分,共20分)1、下列有关C语言的叙述中错误的是(D) 0A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)oA) MAINB) _HJC)2ongD)LINE13、以下能正确定义一维数组的是(CoA) int a5=0,1,2,3,4,5;B) inta5= ” 012345;C) char a = ” 012345;D) chara5=0,1,2,3,4,5;4、执行下列程序段后输出的结果是(C)ox = 9;while
2、(X > 7) printf( “*”); X - -; A) *B) *C) *D) *5、设 char str110=“ABCD” , str210=xyz则执行语句解析:printf(“ %d, strle n(strcpy(str1.str2); 后的输出结果是(D)ostrc py(str1,str2);strc py(str1,str2);里是"XYZ", Z后面有字符串结束符后,str1执行后,函数返回的是 str1,因为str1里是新值"XYZ",而strlen(strcpy(str1,str2)就是 strlen(str1 的新值
3、),所以得 3 ostrlen统计到字符串结束符以前,即,不计入字符串结束符。A) 9B) 8C) 5D) 3A)o6若用数组名作为函数调用的实参,贝M专递给形参的是(0。A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(A) voidB)double C)intD) char8、下面不能正确进行字符串赋值操作的语句是 (Q。A) char s5="ABCD"B) char s5;s="ABCD"C) char *s ; s="ABCDEF"
4、D) char *s="ABCD"解析:这样理论上的没错的把 s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s = "ABCDEF"或 char s8;strcpy(s, "ABCDEF");则下列表达式中值为3的是(C)。9、设有说明 int s5=1,3,5,7,9; int *p=s;A)+PB)+(* p)C) *(+P)D) *(p+=2)解析:A是把p得地址后移一个int单位长度,即使P指向数组的第二个元素。B是取得P当前指向的元素值然后加1,即1+1=2;C是先移动P,使其指向第二个元素,然
5、后取得当前指针指向的元素值,即D是先使P指向数组的第三个元素,然后去的当前指针指向的元素的值,即3.5。10、下面程序的输出结果是(B)。int m=13;int fun( int x,int y) int m=3;return( x*y-m); mai n() int a=7,b=5;printf(“dn”,fun(a,b)/m); A) 1B) 2C) 3D) 10二、填空题。(每空2分,共30分)1.设有变量说明语句:int x=1,y=2;则执行下述printf 语句的输出结果是_1.000000_prin tf("%fn",1.0+x/y);2.执行下述程序:#i
6、 nclude <stdio.h> mai n()int x,y;scan f("%2d%*2s%1d", &x,&y);prin tf("%dn",x+y);若从键盘输入:12345671则程序的输出结果是17 0解析:x,y为int类型,x的长度为2,y的长度为1,即x为12,y为5,故x+y=173. 以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。#i nclude <stdio.h> mai n()float x,amax
7、,am in;scan f("%f", &x);amax=x;amin=x;while (x>0)if (x>amax)amax=x;else if (x<am in)amin=x;sca nf("%f, &x);prin tf("namax=%fnami n=%fn",amax,ami n);4. 设n是整型变量,且已具有某正整数值。根据下述数学式11111 1 122 33 4n n 1求s的值并输出。可编写如下之程序段来实现。请填空。int k;double s,d;s=0.0;d=1.0;k=0;dos
8、=s+d;k+d=1.0/(k*(k+1); while (k<=n);prin tf("%fn",s);5.执行下述程序的输出结果是 -3 -4 0 4 4 3#i nclude <stdio.h>mai n()int a6,i;for (i=0;iv6;i+)ai=9*(i-2+4*(i>3)%5;prin tf("%3d",ai);prin tf("n");解析:(i>3)为真时值为1,反之为0,6.执行下述程序的输出结果是 6#in elude <stdio.h>mai n()int
9、a=2,4,6,* ptr=&a0,x=8,y,z;for (y=0;y<3;y+)z=(*( pt叶 y)vx)?*( pt叶 y):x;prin tf("%dn",z);7.执行下述程序的输出结果是60 。#in elude <stdio.h>mai n()int a2=10,20,30,40,50,60,(* p)2;p=a;prin tf("%dn",*(*( p+2)+1);8.执行以下程序的输出结果是址。#in elude <stdio.h>mai n()int s,i,sum();for (i=1;iv
10、=10;i+)s=sum(i);prin tf("s=%dn",s);sum(i nt k)int x=0;return (x+=k);9. 下述函数定义用来求出两个整数之各,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。void add(i nt x,i nt y,int *zz=x+y;10. 函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每位存入由整型指针b所指向的一维数组a,最低位存放于a0中,次低位存放于a1中,依此类推。请填空。void fun c(i nt x,i nt *b)int r;dor=x%2;=r;x/=2; wh
11、ile(X);11. 以下程序中函数in vert实现将数组内所有数组元素的值逆置。比如,执行本程序将输出:10987654321请填空。#i nclude <stdio.h> mai n()int a10=1,2,3,4,5,6,7,8,9,10,i, n=10;inv ert(a, n-1);for (i=0;i<10;i+)prin tf("%3d",ai);prin tf("n");in vert(i nt *s,i nt num)int *t,k;t=s+num;while (_t>sk=*s;*s=*t;*t=k;s+
12、;t-;12. 若有以下定义和说明,则结构体变量 w在内存中所占的字节数是 union aafloat X; float y;char c6;; struct stunion aa v;float w5;double ave; w;13.执行下述程序的输出结果是#in elude <stdio.h>struct strfloat X;char *y; *m;struct str group 3=95.0,"Li",82.5,"Wa ng".73.5,"S un"mai n()m=gro up;prin tf("%
13、.lf,%sn",m->x,m->y);14.下面的程序用来统计某文件中字符的个数。请填空。#i nclude <stdio.h>#in clude <stdlib.h>mai n()FILE *fp;long num=0;if (fp=fo pen( "fnam.dat","广)=NULL)prin tf("Ca n't o pen this file!n");exit(0);while (fgetc(fp);nu m+;prin tf(" num=%dn",nu m)
14、;fclose(f p);15.执行下述程序后,输出结果为#i nclude <stdio.h> #defi ne FUN1(a,b) a+b #defi ne FUN2(a,b) a-b #defi ne CAL(a,b) a*b+a+3 mai n()prin tf("%dn",CAL(FUN1(3,5),FUN2(4,5);三、修改程序(在程序出错的语句下划横线并标号,把修改后的语句写在程序之后的横线上。每小题5分,共10 分)1.下列给定程序的功能是:读入一个整数(2<=k< = 10000),打印它的所有质因子(即所有为素数的因子)。例如,
15、若输入整数2310,则应输出2、3、5、7、 11。#in clude vconi o.h> #i nclude <stdio.h>IsP rime(i nt n);m=1;for ( i=2; ivn; i+) int i,m;if !(n%i) m=0; con ti nu e; return (m);mai n() int j,k;pnntf(“ nPI ease en ter an in teger nu mber betwee n 2 and10000:”);scanf(“%d ,k);re): ” ,k);“ n %4d ,j);prints“ n The p r
16、ime factor(s) of %d is (afor (j=2;jv=k;j+)if (!(k%j)&(Is Pnme(j) printf(printf( “ n”);2.下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到 c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,!中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。#i nclude <stdio.h> #i nclude <stri ng.h> void fun( char *p ,char *q,ch
17、ar *c) int k=1;while(* p!=*q) if (*p <*q) ck=*q;else ck=* p;if (*P)P+;if (*q) q+;k+;char a10=“aBCDeFg” ,b10=“ABcc”fun( a,b,c);printf(“The stri ng a:” );puts(a);printf(“The stri ng b:”);P uts (b);printf(“The result: ”);P uts(c);mai n(),c80=四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。(每小题5分,共20 分)1.#i nclud
18、e <stdio.h> int k=0;void main()char ch; int k=0;for(ch= ' A ;ch<' H ;ch+,k+)if(k%2=0) printf( “%c ,ch);printf( “ n”);输出结果:2. #in clude <stdio.h>void mai n()char c= ' A'; do switch (c+)case'A' : k+; break;casecase'C' : k+=2; break;caseD' : k=k%2; bre
19、ak;case'E : k=k*10; break;default: k=k/3;k+; while(c<'G );printf(输出结果:3. #in clude <stdio.h>void main() inta6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i,j;for(i=0;i<6;i+) for(j=0;j<6;j+) if(ai=bj)break; int a8=1,0,1,0,1,0,1,0,i;for(i=0;i<8;i+) printf(“d ,ai);if(j<6) printf(“
20、d ,ai);printf(n );输出结果:4. #i nclude <stdio.h>void mai n()for(i=2;i<8;i+) ai+=ai-1+ai-2;if !(n%i)printf(n );输出结果:五、编程题(本大题20分,第一题8分,第二题12分)1-x1、计算分段函数的值:(x<0)(x>=0)22*x -2编程实现。2、输入10个学生3门课的成绩,用函数实现:找出最高的分数所对应的学号和成绩。模拟试卷十一、单选题参考答案:1) D6) A二、填空题2) C7) C3) C8) C4) C9) C5) D10) B1、2、3、4、k=
21、k+11.00000017x>0.05、6、7、&9、10、11、12、13、-3 -4 0 4 4 366010int *z*(b+)t>s4295, Li14、fgetc(fp)!=EOF15、291、IsPrime(int n); scanf(“ d'改为改为IsP rime(i nt n) scanf( “ %&k);三、改错题 m=0; continue; 改为if (!(n%i)m=0; continu e; if (!(k%j)&(IsPrime(j) 改为 if(!(k%j)& (IsPrime(j)2、studio.h 改为 stdio.hvoid; fun(char *p,char *q,char *c); 改为 voidfun(char *p,char *q,char *c) k=1改为k=0while (*p!=*q)改为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度黑龙江省高校教师资格证之高等教育心理学通关提分题库(考点梳理)
- 2024年图书管理员考试复习建议试题及答案
- 商业信用与企业管理
- 文化素质测试试卷
- (高清版)DB12∕T 543-2018 南水北调工程监理管理规范
- 2025年同位素分离装置合作协议书
- 2025年媒体监测项目服务协议
- 服务员劳动合同(2025年版)
- 就业三方协议(2025年版)
- 2025年公司结款协议模板
- 2022年医学专题-脑梗死诊治规范
- 汉字的起源主持人演讲稿
- 询价单(表格模板)
- 苏少版八年级音乐下册踏浪课件
- 新人教版四年级数学下册总复习专题一《四则运算及运算定律》课件
- 封条模板A4直接打印版
- 双减背景下的作业设计与实施优秀案例PPT
- 福州仓山万达广场项目可行性研究报告
- DB3501_T 001-2021工业(产业)园区绿色低碳建设导则(高清版)
- 中国铁路总公司铁路技术管理规程高速铁路部分2014年7月
- 邮差先生详细解析(小说复习用).ppt课件
评论
0/150
提交评论