c语言全真模拟题及答案.docx
- 文档编号:25537776
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:20
- 大小:19.13KB
c语言全真模拟题及答案.docx
《c语言全真模拟题及答案.docx》由会员分享,可在线阅读,更多相关《c语言全真模拟题及答案.docx(20页珍藏版)》请在冰豆网上搜索。
c语言全真模拟题及答案
一、填空题
第1题
以下do-while语句中循环体的执行次数是【3】.
a=10;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
第2题
设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【10】.
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
第3题
定义inta[2][3];表示数组a中的元素个数是【6】个.
第4题
函数的【递归】调用是一个函数直接或间接地调用它自身.
第5题
设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.
第6题
intx=4,y=z=2;z=x==(y=z);则z的值为【4】.
第7题
intx=2,y=3,z=4;则表达式x+y&&z的值为【1】.
第8题
若有以下定义,则计算表达式y+=y-=m*=y后的y值是【—16】.
intm=5,y=2;
二、单项选择
第1题
为表示关系x≥y≥z,应使用C语言表达式
A:
(x>=y)&&(y>=z)
B:
(x>=y)AND(y>=z)
C:
(x>=y>=z)
D:
(x>=z)&(y>=z)
第2题
C语言函数内定义的局部变量的隐含存储类别是
A:
static
B:
auto
C:
register
D:
extern
第3题
若有说明inta[3][4];则对a数组元素的正确引用是()。
A:
a[2][4]
B:
a[1,3]
C:
a[1+1][0]
D:
a
(2)
(1)
第4题
从循环体内某一层跳出,继续执行循环外的语句是
A:
break语句
B:
return语句
C:
continue语句
D:
空语句
第5题
下列()表达式的值为真,其中a=5;b=8;c=10;d=0
A:
a*2>8+2
B:
a&&d
C:
(a*2-c)||d
D:
a-b 第6题 以下程序的执行结果是________. main() {intw=1,x=2,y=3,z=4; w=(w x: w; w=(w y: w; w=(w z: w; printf("%d",w);} A: 1 B: 2 C: 3 D: 4 第7题 若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时,___是正确的输入 A: 2030,40 B: 203040 C: 20,3040 D: 20,30,40 第8题 在C语言中,一维数组的定义方式为: 类型说明符数组名()。 A: [常量表达式] B: [整型表达式] C: [整型常量]或[整型表达式] D: [整型常量] 第9题 以下不能正确进行字符串赋初值的语句是()。 A: charstr[5]="good! "; B: charstr[]="good! "; C: char*str="good! "; D: charstr[5]={'g','o','o','d',0}; 第10题 C语言中,逻辑"真"等价于 A: 大于零的数 B: 非零的数 C: 大于零的整数 D: 非零的整数 三、程序(程序填空、程序设计) 第1题 功能: 统计一个字符串中的字母、数字、空格和其它字符的个数。 #include"stdio.h" main() { chars1[80];inta[4]={0}; intk; /***********SPACE***********/ voidfun(chars[],intb[]); gets(s1); /***********SPACE***********/ fun(s1,a); puts(s1); for(k=0;k<4;k++) printf("%4d",a[k]); } voidfun(chars[],intb[]) { inti; for(i=0;s[i]! ='\0';i++) if('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z') b[0]++; /***********SPACE***********/ elseif('0'<=s[i]&&s[i]<='9') b[1]++; /***********SPACE***********/ elseif(s[i]=='') b[2]++; else b[3]++; } 第2题 功能: 输入三个整数x,y,z,请把这三个数由小到大输出。 #include voidmain() { intx,y,z,t; scanf("%d%d%d",&x,&y,&z); if(x>y) {t=x;x=y;y=t;}/*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf("smalltobig: %d%d%d\n",x,y,z); } 第3题 功能: 输出100到1000之间的各位数字之和能被15整除的所有数, 输出时每10个一行。 #include voidmain() { intm,n,k,i=0; for(m=100;m<=1000;m++) { 【k=0】; n=m; do { k=k+n%10; n=n/10; } 【while(n! =0)】; if(k%15==0) { printf("%5d",m);i++; if(i%10==0)printf("\n"); } } } 第4题 学生变量定义如下: structstudent { charnumber[6]; charname[6]; intscore[3]; }stu[2]; 功能: 输入学生成绩并显示。 #include structstudent { charnumber[6]; charname[6]; intscore[3]; }stu[2]; voidoutput(structstudentstu[2]); voidmain() { inti,j; /***********SPACE***********/ for(i=0;i<2;________________) { printf("请输入学生%d的成绩: \n",i+1); printf("学号: "); /***********SPACE***********/ scanf("%s",________________.number); printf("姓名: "); scanf("%s",stu[i].name); for(j=0;j<3;j++) { printf("成绩%d.",j+1); /***********SPACE***********/ scanf("%d",________________.score[j]); } printf("\n"); } output(stu); } voidoutput(structstudentstu[2]) { inti,j; printf("学号姓名成绩1成绩2成绩3\n"); for(i=0;i<2;i++) { /***********SPACE***********/ ________________("%-6s%-6s",stu[i].number,stu[i].name); for(j=0;j<3;j++) printf("%-8d",stu[i].score[j]); printf("\n"); } } 答案: 【1】i++或++i或i=i+1 【2】&stu[i] 【3】&stu[i] 【4】printf 第5题 功能: 5个学生选修4门课程,计算个人与各科平均成绩及全班平均成绩,并在屏幕上显 示出来。 #defineM5/*定义符号常量人数为5*/ #defineN4/*定义符号常量课程为4*/ #include"stdio.h" main() { inti,j; voidaver(floatsco[M+1][N+1]); staticfloatscore[M+1][N+1]={{78,85,83,65},{88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,72}}; aver(score); clrscr(); printf("学生编号课程1课程2课程3课程4个人平均\n"); for(i=0;i { printf("学生%d\t",i+1); /***********SPACE***********/ for(j=0;j<________________;j++) printf("%6.1f\t",score[i][j]); printf("\n"); } for(j=0;j<8*(N+2);j++) printf("-"); printf("\n课程平均"); for(j=0;j printf("%6.1f\t",score[i][j]); printf("\n"); getch(); } voidaver(floatsco[][N+1]) { inti,j; /***********SPACE***********/ for(i=0;i<________________;i++) { for(j=0;j { sco[i][N]+=sco[i][j]; sco[M][j]+=sco[i][j]; sco[M][N]+=sco[i][j]; } /***********SPACE***********/ sco[i][N]________________N; } for(j=0;j /***********SPACE***********/ sco[M][________________]/=M; sco[M][N]=sco[M][N]/M/N; } 答案: 【1】N+1或1+N或5 【2】M或5 【3】/= 【4】j 第6题 功能: 计算平均成绩并统计90分以上人数。 #include"stdio.h" voidmain(){ intsum=0; intscore[10]; intcount=0; inti=0; for(i=0;i<10;i++) { printf("请输入第%d个人的成绩",i+1); scanf("%d",&scors[i]); sum+=score[i]; if(score[i]>90) { count++; } } printf("平均分%f,有%d个90分以上。 ",(sum*1.0)/10,count); } 第7题 功能: 写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。 #include #include voidmain() { intf(charstr[]); intl; charstr[10]; gets(str); l=f(str); printf("%d",l); } intf(charstr[]) { intz; z=strlen(str); return(z); } 第8题 找出x,y,z三个数中的最大、最小值 #include intmain() { inti,n,max,min; for(i=0;i<3;i++) { scanf("%d",&n); if(i==0)//初始化max,min max=min=n; if(max max=n; if(min>n)//最小值 min=n; } printf("maxnumber%dminnumber%d\n",max,min);//输出最大最小值 } 第9题 功能: 删除一个字符串中的所有数字字符。 #include voiddelnum(char*s) { inti,j; /***********SPACE***********/ for(i=0,j=0;【s[i]! =】'\0';i++) /***********SPACE***********/ if(s[i]<'0'【||】s[i]>'9') { /***********SPACE***********/ 【s[j]=s[i]】; j++; } s[j]='\0'; } main() { char*item; printf("\ninputastring: \n"); item=""; gets(item); /***********SPACE***********/ 【delnum(item)】; printf("\n%s",item); } 第10题 功能: 从键盘为一维整型数组输入10个整数找出其中最小的数并输出。 #include"stdio.h" intfun(intx[],intn) { /**********Program**********/ intmin; inti; min=x[0]; for(i=0;i { ifmin>x[i]; min=x[i]; } returnmin; /**********End**********/ } main() { inta[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); min=fun(a,10); printf("%d\n",min); } 第11题 功能: 从键盘输入一个三位数,判断是否"水仙花数"。 说明: 所谓"水仙花数"是指一3位数,其各位数字立方和 等于该数本身。 intfun(intn) { inta,b,c; a=n%10; b=n/10%10; c=n/100; if(a*a*a+b*b*b+c*c*c==n) return1; elsereturn0; } 第12题 功能: 判断m是否为素数。 #include #include voidmain() {inti; intfun(int); for(i=2;i<=200;i++) if(fun(i))printf("%4d",i); getch(); } intfun(intn) {inti,t; t=sqrt(n); for(i=2;i<=t;i++) if(n%i==0)return0; return1; } 第13题 功能: 求1到w之间的奇数之和。 (w是大于等于100小于等 于1000的整数) inti; longintsum=0; for(i=1;i<=w;i++) if(i%2! =0)sum=sum+i; returnsum; 第14题 功能: 编写函数fun计算下列分段函数的值: x^2+x+6x<0且x≠-3 f(x)=x^2-5x+60≤x<10且x≠2及x≠3 x^2-x-1其它 fun(doublex) { if(x<0&&x! =-3) { returnx*x+x+6; } elseif(x<10&&x! =2&&x! =3) { returnx*x-5*x+6; } elsereturnx*x-x-1; } 第15题 功能: 求1到100之间的偶数之积。 voidsum() { inti,sum=0; for(i=1;i<=100;i++) { if(i%2==0) sum=sum+i; } printf("sum=%d",sum); } main() { sum(); } 第16题 功能: 求一组数中大于平均值的数的个数。 例如: 给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 intal=0; for(inti=0;i al+=a[i]; intav=al/N; intnum=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟 答案