省计算机等级考试(C语言理考资料)_第1页
省计算机等级考试(C语言理考资料)_第2页
省计算机等级考试(C语言理考资料)_第3页
省计算机等级考试(C语言理考资料)_第4页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

浙江省计算机等级考试(C语言程序设计理考、机考资字波工程学院电子与信息工程学院公共计算机教研交2010年6月目录TOC\o"1-5"\h\z第一部分理论笔试题 3第一章程序填空题 3第二章程序阅读题 21第三章程序设计题 43第二部分上机操作模拟题 56第一章程序调试模拟试题 56第二章程序设计模拟试题 67第三章程序设计模拟试题(附) 84附录1历年浙江省计算机等级考试试题(二级C) 1022003年秋浙江省高校计算机登记考试试卷(二级C) 1022004年秋浙江省高校计算机等级考试试卷(二级C) 1062005年秋浙江省高校计算机等级考试试卷(二级C) 1102006年春浙江省高校计算机等级考试试卷(二级C) 1142006年秋浙江省高校计算机等级考试试卷(二级C) 1182007年春浙江省高校计算机等级考试试卷(二级C) 1212008年春浙江省高校计算机等级考试试卷(二级C) 125附录n 历年浙江省计算机等级考试答案(二级C) 1282003年秋浙江省高校计算机等级考试参考答案(二级C) 1282004年秋浙江省高校计算机等级考试参考答案(二级C) 1292005年秋浙江省高校计算机等级考试参考答案(二级C) 1302006年春浙江省高校计算机等级考试参考答案(二级C) 1312006年秋浙江省高校计算机等级考试参考答案(二级C) 1322007年春浙江省高校计算机等级考试参考答案(二级C) 1322008年春浙江省高校计算机等级考试参考答案(二级C) 133第一部分理论笔试题

第一章程序填空题--程序填空题专项练习1.下列程序的输出结果是16.00,请填空.main(){inta=9,b=2;floatx=(1),y=l.l,z;z=a/2+b*x/y+l/2;printfC%5.2f\nM,z);}.下面的程序求两个数中的较小值,请填空.intmain(intx,inty){intz;z=x<y?(1) ;return(z);}#include<stdio.h>main(){inta,b;printf("%d”, ⑵ );).下面的程序输出x,y,z三个数中的最小值,请填空.#include<stdio.h>(intx=4,y=5,x=8;intu,v;u=x<y? ⑴ ;v=u<z?(2) ;printf("%d”,v);}.下面的程序从键盘输入一组字符,分别统计大写字母和小写字母的个数,请填空.#include<stdio.h>main(){intm=0,n=0;charc;while( ⑴ !='\n')if(c>='A'&&cv=Z)m++;if(⑵ )n++;}}.下面的程序是在输入的一批正数中求最大值,输入0结束循环,请填空.#include<stdio.h>main(){inta,max=0;scanfC%d”,&a);while( (1) )|if( (2) )max=a:scanf("%d”,&a);)printf("%d”,&a);.下面的程序计算1到200之间的奇数之和以及偶数之和,请填空.#include<stdio.h>main(){intk,n,sl=0,s2=0;for(k=1; (1) ;k++)(if(⑵ )s2=s2+k;elsesl=sl+k;)printf("sl=%d,s2=%d\n”,si,s2);.一个整数与3的和是5的倍数,与3的差是6的倍数,下面的程序求符合条件的最小数,请填空.#include<stdio.h>main()(intn;n=l;while(1)(n=n+1;if(⑴ )break;)printf("n=%d",n);}.下面的程序在输入m后求n使n!v=mv=(n+1)!(例如输入726,应输出n=6),请填空.⑴voidmain()(TOC\o"1-5"\h\zint⑵ ;scanf( (3) );for(n=2;jc<=m;n++)jc=jc*n;printf(<4n=%d\n”, (4) );}.若a,b是亲密数对,则a的因子和等于b,b的因子和等于a且a不等于b,下面的程序是输出6至10000之间的亲密数对,请填空.#include<stdio.h>viodmain(){inta,b,c,i;for(a=6;a<=10000;a++)(b=l;for(i=2;i<=a/2;i++)if((1) )b+=i;(2)for(i=2;i<=b/2;i++)if(b%i==O)c+=i;if((3) &&a!=b!)printf("%d%d\n”,a,b);)10.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,请填空。#include<stdio.h>main(){intm,n,w;scanf(t4%d,%d”,&m,%n);while(n){w=(1):m=(2);n=(3);)printf("%d”,m);1.输入N个实数,输出其中最大值,最小值,请填空.#include<stdio.h>voidmain(){floatnum,nmax,nmin;(Dscanf("%d”,&n);scanf(44%f\&num);nmax=num; (2)for(i=2;i<=n;i++)(scanf(44%f\ ⑶ );if(num>nmax)nmax=num;⑷)printf("MAX=%f,MIN=%F\n”,nmax,xmin);12,5面程序的功能是输入1至100之间每位数的乘积大于每位数的和的数,例如23,其各位数乘积为2*3=6.各位数之和为2+3=5,故23满足条件,请填空使程序完整.#include<stdio.h>main(){intm,n,k=l,s=0;for(n=l;n,=100;n++){k=l;s=0;⑴while( ⑵ )(k*=m%10;s+=m%10:⑶}if(k>s)printfC%d,%d,%d\nM,n,k,s);)}13.下面的程序计算并输出方程X2+Y?+Z2=1989的所有整数解,请填空.#include<stdio.h>voidmain(){⑴for(il=-45;il<=45;il++)for( (2) )for(i3=-56;i3<=45;i3++)if( (3) )printf( (4)jl,i2,i3);14.下列函数输出一行字符:先输出k个空格,再输出n个指定字符(由实参指定),请填空.#include<stdio.h>voidprint( ⑴ ){inti;for(i=l;i<k;i++) ⑵for( (3) )printf("%c”,zf);⑷}main()(intm=3,n=5;charch='#';print(m,n,ch);5.下面的程序是求出数组a的两条对角线上的元素之和,请填空.#include<stdio.h>main()(inta[3][3]={1,3,5,7,9,11,13,15,17};intij,sum1=0,sum2=0;for(i=0:i<3;i++)for(j=0;j<3;j++)if(i==j)⑴ ;for(i=0;i<3;i++)for((2) ; ⑶ ;j-)if(i+j==2)sum2=sum2+a[i][jj;printf("suml=%d,sum2=%d\n”,suml,sum2);}16.下面的程序是输入10个数,输出其中与平均值之差的绝对值为最小的数,请填空.#include<stdio.h>⑴voidmain(){floata[10],s,d,x;inti;for(i=0:i<10:i++) (2) ;⑶for(i=0;i<10;i++)s+=a[i]:s/=100:d=fabs(a[0]-s);⑷;for(i=l;i<10;i++)if(fabs(a[i]-s)<d)d=(5) ;x=a[i];}-printf("%1',x);17.下面的程序将十进制整数number转换成n进制,请填空.#include<stdio.h>main()(inti=0,number,nj,num[20J;scanf(U%d,\&number);scanf("%d”,&n):do{TOC\o"1-5"\h\znum[ij= (1) ;base二⑵ ;i++;}while(number!=0);for( ⑶ )printf(tt%d,\num[jj);18.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填空.#include<stdio.h>main()(inta[10],max,min,i,j,k,t;for(i=0;i<10:i++)scanfC%d?,,&a[i]);max=a[0];min=a[0];for(i=0;i<10;i++){if(a[i]<min){min=a[i]; ⑴ }if(a[ij>max){max=a[i];⑵ })⑶for(i=0;i<10;i++)printf("%d”,a[iD;}9.下面的程序将二维数组a的行和列元素呼唤后存到另一个二维数组b中,请填空.#include<stdio.h>main()(inta[2][3]={{l,2,3},{4,5,6));inti,jb[3][2];printf("arraya:\n^^);for(i=0;i<2;i++){for(j=0;⑴ ;j++)(printfC%5d,,,a[i][j]);⑵printfprintfC3.设数组a包括10个整型元素,下面程序的功能是求出a中各相邻两个元素的和,并3.设数组a包括10个整型元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出,请填空.#include<stdio.h>for(i=0; ⑶ ;i++)(for(j=0;j<=l;j++)printfC%5d>[i]U]))}0.下面程序的功能是输入若干字符,分别统计数字字符个数,英文字母个数,输入换行符时输出统计结果,请填空.#include<stdio.h>voidmain(){charch;(1)while(( (2) )!=)(if(ch>='0'&&chv='9')si++;if(ch>=,a,&&ch<=,z,) (3) s2++;)21.下面的程序是对键盘输入的两个字符串进行比较,然后输出其中第一个不同字符的ASCII码之差,例如:若输入两个字符串分别为abcdefg和abceef»则第一个不同字符为d和e,输出为,请填空.#include<stdio.h>main(){charstrl[100],str2[100],c;inti=0,s;printf("EnterString1:");gets(strl);printf(*4EnterString2:");gets(str2);while((strl[i]==str2[i]&&(l)))i++;s=(1) ;printf(44%d\nM,s);}22.下面程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空.#include<stdio.h>main(){floatx,amax,amin;scanfC%r,&x);amax=x;amin=x;while( (1) ){if(x>amax)amax=x;if( (2) )amin=x;scanf(t4%f;&x);}printf(44\namax=%f\namin=%f\n",amax,amin);main(){ inta[10],b[10],i;for(i=0;i<10;i++)scanf ⑴ );for(i=l;i<10;i++) (2)for(i=l;i<10;i++){printf("%3d”,b[i]);if( ⑶ ==0)printfC\n");|}24.下面程序的功能是在三个字符串中找出最小的,请天空.include<stdio.h>include<string.h>main(){chars[20J,str[3][20];inti;for(i=0;i<=3;i++)gets(str[i]);strcpy(s, ⑴ );if(strcmp(str[2J,s)<0)strcpy(s,str[2J);printfC%s\n”, ⑵ );}25.下面程序的功能是在任意的字符串a中将与字符'c'相等的所有元素的下标值分别存放在整型数组b中,请填空.include<stdio.h>include<string.h>main()(chara[80J;inti,b[80],k=0;gets(a);for(i=0;a[i]!=>\0,:i++)if((1) ){b[k]=i;(2) )for(i=0;i<k;i++)primf("%3d”,b[i]);)26.输入一个字符串(不超过60),将串中连续的空格符保留1个,例如若输入字符串为H叩pynewyear!",则输出字符串为"Happynewyear!",请填空.include<stdio.h>include<stding.h>voidmain()(charb[61];inti;gets(b);for(i=1; ⑴ ;i++)if(b[i-l]==,,&&b[i]==,>){⑵ (b+i-1,b+i);i--;〃提示:此处填入正确的函数名)⑶27.下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为。的元素中,其他依次类推,请填空.#include<stdio.h>voidfun(intx,intb[]){intk=0,r,i;do{u⑴b[k++]=r;⑵}while(x);for(i=k-l;i>=0;i--)printf("%d”,b[i]);)main(){inta=10,b[10];fun(a,b);28.函数expand(chars[],chart[])在将字符串s复制到字符串t时,将其中的换行符和制表符转换为可见的转义字符,即用飞d,表示换行符,用It”表示制表符,请填空.expand(charsi],chart[]){for(i=j=0;s[i]!=,\0,;i++)switch(s[i]){case'Xn':[ (1) ]= ⑵ ;t[j++]=n,;caseAt:tf⑶ ]= ⑷ ;t|j++]=,t,;break;default:t|(5) |=s[ij;break;}TOC\o"1-5"\h\zt[j]= (6) ;29.下面的程序输出如下形式的二项式系数表.要求表的行数在运行时输入,若小于1或大于10则重新输入,请填空.2 13 16 4 11 5 10 10 51#include<stdio.h>voidmain(){inta[10][10]={{0}),iJ,n;while( (1),n<l||n>10);for(i=0;i<2;i++){ali][OJ=1; ⑵ ;}for(i=2;i<n;i++){a[i][0]=l;for(j=l;j<=i;j++)a[i][j]=a[i-l][j]+ (3))for(i=0;i<n;i++)

for(j=0;j<=i;j++)printfC%4d>[i]U]);(4)}30.折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试于中间点元素的值.如果该该待查元素的值大于中间点元素,就缩小待查范围,只测试中间点之后的元素;反之,测试中间点之前的元素,测试方法同前.函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1,请填空.binary(inta[10],intm){intlow=O,high=9,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])⑴elseif(m>a[mid])⑵elsereturn(mid);1return(-1);}31.下面的函数invert的功能是将一个字符串的内容颠倒过来,请填空。voidinvert(charstr[J){intij,k;for( (U ;i<j;i++J-){k=str[ij;⑵;str[j]+k;}}32.下面程序的功能是计算函数F(x,y,z)=(x+y)/(x・y)+(z+y)/(z-y)的值,请选择填空.#include<stdio.h>#include<math.h>floatf(float,float);main(){floatx,y,z,sum:scanf("%f,%f,%F',&x,&y,&z):sum=f( (1) )+( (2) ):printf(4tsum=%f\n",sum);}floatf(floata,floatb){floatvalue;value=a/b;return(value);x-y,x+yx+y,x-yx-y,x+yx+y,x-yz+y,z-yz-y,z+yA.x-y,x+yx+y,x-yz+y,z-yz-y,z+y33.下面程序的功能是根据输入的“Y"("y”)与"N”(“n”),在屏幕上分别显示出"ThisisYes”与“ThisisNO”,请填空。#include<stdio.h>voidYesNO(charch){switch(ch){case'y':case'Y':printf("\nThisisYes.\n"); ⑴case'n':case'N':printf(45.下面的程序是输入若干个正整数,判断每个数从高位到低位各位数是否按值从小到大排列,请填空.#include<stdio.h>⑴voidmain(){intn;while(scanf("%5.下面的程序是输入若干个正整数,判断每个数从高位到低位各位数是否按值从小到大排列,请填空.#include<stdio.h>⑴voidmain(){intn;while(scanf("%d”,&n),n>0)if(funl(n))printf(1l%d中各位数字按从小到大排列\n”,n);elseprintf(ll%d各位数字未按从小到大排列\n”,n);}intfun1( (2) ))}main(){charch;printf(4t\nEnterachar:'y'('Y')or'n'('N')”);ch=(2);printf(4tch:%c”,ch);YesNo(ch);}34.下面函数pi的功能是:根据以下公式,返回满足精度(0.0005)要求的“值,请填空.n/2=l+l/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+ include<stdio.h>include<math.h>doublepi(doubleep)(doubles,t;intn;for( (1) ;t>ep;n++)(s+=tt=n*t/(2*n+l);)return( ⑵ );}main()(doublex,y;printf("\nPleaseenteraprecision:");scanf(4<%f\&x);y=pi(x);printf(<fc\nep=%f,Mn=%f,x,pi(x));}36.带参数的宏定义程序如下,请填空.#defineABS(x)((x)>0?(x):-(x))#defineMAX(x,y)((x)>(y)?(x):(y))voidmain(){inta=-3;a=ABS(a+4);printf(t4max=%d\n”,MAX(a,6));)则预编器处理后的新源程序为voidmain(){inta=-3;a=(1) ;printf("max=%d\n”, ⑵ );37.下面程序的功能是:从键盘上输入一行字符存入一个字符数组串,然后输出该字符串,请填空.include<stdio.h>main(){charstr[81],*pstr;inti;for(i=0;i<80;i++){str[ij=getchar();if(str[i]==An')break;)str[i]= ⑴ ;pstr=str;while(*pstr)putchar(*pstr(2) );}38.下面程序的功能是将两字符串中奇数位上的数字组合输出,如该题应输出6385,请填空.include<stdio.h>main(){charch[2][5]={"693”,“825”},*p[2];inti,j,s=0;for(i=0;i<2;i++) ⑴for(i=0;i<2;i++)(s=0;for(j=0;p[i]|j]>='O'&&p[i]UK='9,;j+=2)⑵printf("%d”,s);39.下面程序的功能是调用find函数求实参数组中最大值,再调用find函数求实参数组中最小值,请填空.#include<stdio.h>voidmain()floats,a[7]={3,13,24,46,15,36,27);floatfind(float*,int,int);s=find(a,7,1); (1)(2)printf("%f\n”,s);)floatfind(float*p,intn,intflag)(inti;floatt,fh;if(flag>=0)fh=1;elsefh=-1; ⑶for(i=1;i<n;i++)if(*(p+i)*fh>t*fh)t=*(p+i);(4)40.下面程序的功能是对数组按值从大到小排序后输出,请填空.#include<stdio.h>main(){floata[7]={6,46,13,8,3,25,9);voidsort(float*,int);for(inti=0;i<7;i++)printf(4<%f\a[i]);printfC\nM);}voidsort( (2) )(inti,j,k;floatt;for(i=0;i<n-l;i++){k-j.for(j=i+1;j<n;j++)if((3) )k=j;*(p+i)=*(p+k);*(p+k)=t;41.下面的程序是读入六个字符串,排序后输出,请填空.include<stdio.h>⑴voidsort(char*alJ,intn){intiJ,1;char*temp;for(i=0;i<n-l;i++)(l=i;for(j=i+1;j<n;j++)if(strcmp(a[jj,a[l])<0)l=j;if(l!=i){temp=a[i];a[ij=a[l];a[lj=temp;}voidmain(){char*name[6],ch[6][30];intk;for(k=0;k<6;k++) ⑵for(k=0;k<6;k++)gets(name[k]); ⑶for(k=0;k<6;k++)puts(name[k]);}42.下面程序的功能是对具有10个元素的char类型数组,保持前四个元素中的内容不变,从下标为4元素开始,全部设置为请填空.include<stdio.h>defineM10defineB4voidstar(char*,int);main()inti;chara[10];for(i=0;i<10;i++)scanfC%cM,&a[i]);star( (1) )for(i=0;i<10;i++)}voidstar(char*a,intn){inti;for(i=0; ⑵ ;i++) ⑶43.下列程序中,函数find-data在已从小到大排好序的数组中寻找指定数data,采用二分查找算法,找到则返回该元素地址,找不到返回NULL,请填空.include<stdio.h>⑴find-data(float*a,intn,floatdata)⑵:low=0;high=n-1;while(low<high){mid=(low+high)/2;if(a[midj>data)high=mid-1;elseif(a[midj<data)low=mid+1;else(3) ;}⑷;voidmain(){floatb[10],*p,data;inti;for(i=0;i<10;i++)scanf(4i%f\b+i);scanf(t4%f\&data)p=find-data(b,10,data);if(p)printf("%f\n”,*p);elseprintf(“查找不至lj%f\n”,data);44.下面程序的功能是:计算学生五门课的平均成绩,耍求将五门课和平均成绩定义在一个结构体中,请填空.include<stdio.h>structstu(floatgrade[5];floataverage;);voidmain(){inti;structstuany;printf("Inputthegradesoffivecourse:\n");for(i=0;i<5;i++)any.average=0;for(i=0;i<5;i++)⑵;any.average/=5;printf(tfcTheaverageis%5.2f\nM,any.average);}45.下面的程序读入时间并加1秒后输出,格式为hh:mm:ss,当小时等于24小时置为0,请填空.include<stdio.h>struct{inthour,minute,second;}time;voidmain(void){scanf("%d:%d:%cT, ⑴ );time.second++;if((2) ==60)-(⑶time.second=0;if(time.minute==60)|time.hour++;time.minute=0;if((4) )time.hour=0;})printf("%d:%d:%d\n",time.hour,time.minute,time.second);)46.下面的函数用于将链表中的各节点的数据依次输出,请填空.voidprint(structstudent*head)(⑴p=head;if(head!=NULL)do(printf(<4%d\n”,p->data); ⑵}while( (3) );47.已建立学生某门课成绩链表(成绩存于score域中),下面的函数用于计算平均成绩并输出,请填空.voidprint(structstudent*head)(structstudent*p;floatnum; (1) ;⑵;if(head!=NULL){for(num=0;p!=NULL; (3) ,i++)num+=p->score;num=num/i;primf("%8.1f\n",num);)48.已建立学生某门课成绩链表(成绩存于score域中,学号存于num域中),下面的函数用于输出待补考学生的学号,成绩及补考学生人数,请填空.voidrequire(structstudent*head){structstudent*p;(D;if(head!=NULL)⑵while(P!=NULL)(if(⑶ )(printf(u%7d%6.1f\ p->num,p->score);x++;)p=p->next;)printf("%d\n”,x);)49.下面的程序是输入若干个学生的姓名,学号,数学,英语,计算机成绩到文件student.dat中,请填空.#include<stdio.h>voidmain(){ (1)charname[8],numb[8]; (2)scanf("%d”,&n); ⑶fbr(i=0;i<=n;i++)(scanf(4<%s%s%d%d%d",name,numb,&m,&e,&c);fprintf(fp,**%s%s%d%d%d\n",name,numb,m,e,c);}(4) ;50.文本文件a.dat、b.dat中每行存放一个数且按从小到大存放.下面的程序将这两文件中的数据合并到c.dat中且数据也要从小到大存放,假设文件a.dat数据为1,6,9,18,27,35,文件b.dat数据为10,23,25,39,61,则c.dat中的数据应为1,6,9,10,18,23,25,27,35,39,61.请填空.#include<stdio.h>#include<sdlib.h>voidmain()(FILE*fl,*f2,*f3;intx,y;if((fl=fopen("a.dat'',"r"))==NULL)(printf("a.dal不能打开!\n");exit(O);)if((f2=fopen("b.dat","r"))==NULL)1printfC'b.dat不能打开!\n");exit(O);)if(((1) )==NULL)(printf("c.dat不能打开!\n");exit(O);)fscanf(fl,"%d&x); ⑵ ;while(!feof(fl)&&!feof(f2))if(⑶ )fprintf(f3,"%d\n”,x);fscanf(fl,"%d”,&y);)else{fprintf(f3,"%d\n'',y);fscanf(f2,"%d"),&y);)if(feof(fl))(⑷;while(!feof(f2)){fscanf(f2,"%d”,&y); ⑸ ;}}else{fprintf(f3, (6) );while(!feof(fl)){ ⑺;fprintf(f3,t4%d\nx);})fclose(fl);fclose(f2);fclose(f3);}二.程序填空题专项练习答案1.解:(1)6.62解:⑴x:y(2)min(a,b)3.解:(1)x:y(2)u:z4.解:(l)(c=getchar())(2)c>=ta,&&c<='z'5.解:(l)a⑵max<a计算机信息技术课程6.解:(l)k<=200(2)k%2==07.解:(1)(n+3)%5==0&&(n-3)%6==08.解:(1)#include<stdio.h> (2)m,n,jc=l(3)"%d”,&m(4)n-29.解:(l)a%i==0 (2)c=1(3)a==c10解:(1)m%n;(2)m=n;(3)n=w11解:(1)inti,n;floatnox;(2)nmin=num;(3)#(4)elseif(num<nmin)nmin=num;12解:6m=n;⑵m>0(3)m/=1013解:(l)intil,i2,i3; (2)i2=-45;i2<=45;i2++(3)il*il+i2*i2+i3*i3==1989(4)“%d%d%d\n"14解:(l)intk,intn,charzf(2)printf("“);

(3)i=1;i<=n;i++(4)printf(4t\nM)15解:(l)suml=suml+a[i][j];(3)j>=0(2)j=216解:(1)#include<math.h>(2)scanf("%F',&a[i])(3)s=0;(4)x=a[0](5)fabs(a[i]-s)17解:(l)base%n(2)base/n(3)j=i-l;j>=0;j--18解:(l)j=i;(2)k=i;(3)t=a[j];a[j]=aLk];a[k]=t19解:⑴jv=2(或j<3)(2)bU][i]=a[i][j](3)i<=220解:(l)intsl=0,s2=0;(2)ch=getchar()⑶||ch>='A'&&chv=Z(4)printfC%d%d\n,,,sls2);21解:(l)strl[i]!='W(2)strl[i]-str2[i]22解:(l)x>=0(2)x<amin23解:(1)&a[i](2)b[i]=a[i]+a[i-l](3)i%324解:(1)(strcmp(str[O],str[l])<0?str[0]:str[l])(2)s25解:(l)a[i]==,c'(2)k++;26解:⑴b[i]!=''0'(2)strcpy(3)puts(b)27解:⑴x%2(2)x/=2;28解:⑴j++(2)4\V(3)j++(4)AV(5)j++(6)''0'29解:scanf("%d”,&n)(2)a[i][i]=1(3)a[i-l][j-l](4)putchar(4\n*)30解:(1)high=mid-1(2)low=mid+131解:(1)i=0,j=strlen(str)(2)str[i]=str[j]32解:⑴B(2)C33解:(1)break(2)getchar()34解:⑴n=l,s=0.0,t=1.0(2)2.0*s

5解:(1)intfunl(int); (2)intm(3)k=m%10;(4)m=m/106解:(1)(a+4)>0?(a+4):-(a+4)(2)((a)>(-6)?(a):(-6))7解:(2)++8解:⑴p[i]=ch[i]; (2)s=10*s+p[i]|j]-405;9解:⑴printf("%f\n”,s); (2)s=find(a,7,・1); ”也可以该为其他负数(3)t=*p; (4)returnt;0解:(l)sort(a.7); (2)float*p,intn(3)*(p+j)>*(p+k(4)t=*(p+i);33333444444444451解:1解:(l)#include<string.h>(3)sort(name,6);2解:(l)&a[4],M-B(3)*(a+i)='*';3解:float*(3)returna+mid(2)name[k]+ch[k];(2)i<n(2)intlow,high,mid(4)returnNULL(4)time.hour==24(2)p=p->next;(4)time.hour==24(2)p=p->next;(2)p=head(2)p=head;(2)intm,e,c,i,n;(2)fscanf(f2;,%d,,&y)(4)fprintf(f3;,%d\n,,y)4解:(l)scanf(**%f\&any.grade[i])(2)any.average+=ang.grades[i]5解:(1)&time.hour,&time.minute,&time.second(2)time.second(3)time.minute++;解:(l)structstudent*p;(3)p!=NULL解:(l)inti=O(3)p=p->next解:(i)intx=0;(3)p->num<60解:(l)FILE*fp;(3)fp=fopen(44student,daf(4)fclose(fp);0解:(l)f3=fopen("c.dat","w")(3)x<y(5)fprintf(13,,,%d\n,,,y)(6)"%d\n"x(7)fscanf(fl

第二章程序阅读题程序阅读题专项练习.写出以下程序的运行结果。#include<stdio.h>main()(charcl='a',c2='b',c3='c',c4='\101',c5='116';printf(44a%cb%c\tc%c\tabc\nM,c1,c2,c3);printf(44\t\b%c%c”,c4,c5);).写出以下程序的运行结果。#include<stdio.h>main(){inty=3,x=3,z=l;printf(44%d,%d\n,,,(++x,y++),z+2);.写出以下程序的运行结果。#include<stdio.h>main(){inta=12345;floatb=-198.345,c=6.5;printf(44a=%4d,b=%-10.2e,c=%6.2f\n,\a,b,c);.写出以下程序运行结果。#include<stdio.h>main(){inta=l,b=2;a=a+b;b=a-b;a=a-b;printf("%d,%d\n”,a,b);.写出以下程序运行结果。#include<stdio.h>main(){intp=30;printf("%d\n”,(p/3>0?p/10:p%3));.写出以下程序运行结果。#include<stdio.h>main(){charm;m=B+32;printf(t4%c\n,\m);}.运行时若输入10和20,写出以下程序的运行结果。#include<stdio.h>main(){intx,y;printf(44MInputtownumbersAn^);scanf(M%d%dM,&x,&y);if(x>y)printf(t4max=%d\nM,x);elseprintf(k4max=%d\nM,y);.运行时若输入B,写出以下程序运行结果#include<stdio.h>main(){charch;printf(i4Inputacharacter:\nM);ch=getchar();if(ch<32)printf(i4Thisisacontrolcharacter\n^^);elseif(ch>=,0,&&ch<='9')printf(44Thisisadigit\n^^);elseif(ch>='A,&&ch<=,Z')printf(4<Thisisacapttalletter\n^^);elseprintf(**Thisisanothercharacter\n^^);).写出以下程序运行结果#include<stdio.h>main(){inta=2,b=7,c=5;switch(a>0){casekswitch(b<0){easel:printf(44@,,);break;case2:printf(44#M);break;default:printf(4i#M);break;)default:printf(''&");)printfCV5);.写出以下程序运行结果#include<stdio.h>main(){charc='A';intk=0;do{switch(c+4-)(case'A':k++;break;case'B':k—;case'C':k+=2;break;case'D':k%=2;continue;case'E':k*=10;break;default:k/=3;)k++;}while(cv'G');printf("k=%d”,k);)11.写出以下程序运行结果#include<stdio.h>main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;))printf("%d\n”,m);.运行时输入:thetableisthere.,写出以卜程序运行结果#include<stdio.h>voidmain(){charx;intn=0,k=0;while((x=getchar())!='?)(switch(x)(case't':k++;break;case,h,:if(k==l)k++;break;case,e,:if(k==2)k++;break;default;k=O;)if(k==3)n++;)printf("%d\n”,n);.写出以下程序运行结果#include<stdio.h>main()(inta=l,b=3,c=5;if(c=a+b)prinlf("yes\n’');elseprimf("no\n’');.写出以下程序运行结果#include<stdio.h>main(){intx=lO,y=2O,t=O;if(x==y)t=x;x=y;y=t;printf("%d,%d\n”,x,y);.运行时若输入数据2,4,写出以下程序运行结果#include<stdio.h>voidmain(){ints=l,t=ha,n,i;scanf(tt%d%d,\&a,&n);for(i=l;i<n;i++)(t=t*10+l;s=s+t;}s*=a;printf(44SUM=%d\n,\s);).写出以下程序运行结果#include<stdio.h>main()(inti,j,x=l;for(i=0;i<2;i++){x++;for(j=0;j<3J++){if(j%2)continue;x++;printfC4x=%d,\x);).写出以下程序结果#include<stdio.h>voidmain()|charch;intk=0;for(ch=,A,;ch<,H';ch++,k++)if(k%2==0)printf(t4%c,,,ch);printfCt\n,,);.写出以下程序运行结果#include<stdio.h>voidmain()(inta[6]={32,40,18,12,27,16},b[6]={27,15,40,16,23,29},ij;for(i=0;i<6;i++)(for(j=0;i<6;j++)if(a[i]==b[j])break;if(j<6)printf("%d'',a[i]);}printf(“\n”);.写出以下程序运行结果#include<stdio.h>main(){inti=O,j=Ok=O,m;for(m=0;m<4;m++)switch(m){caseO:i=m++;case1:j=m++;case2:k=m++;case3:m++;)printf(<<\n%d,%d,%d,%d,,,ij,k,m);).写出以下程序运行结果#include<stdio.h>main(){inti,m=0,n=0,k=0;for(i=9;i<=ll;i++)switch(i/10)(case0:m++;n++;break;casel0:n++;k++;break;default:k++;m++;)printf(t4%d%d%d\n,\m,n,k);).运行时若输入数据15和25,写出以下程序的运行结果#include<stdio.h>voidmain(){intm,n,u,v;scanf(tt%d%d,\&m,&n)for(u=m;u%n!=0;u=u+m);v=m*n/u;printfCi%d,%d\n,\u,v);).写出以下程序运行结果#include<stdio.h>main(){intx=15;while(x>10&&x<50){x++;if(x/3){x++;break:}elsecontinue;)printf("%d\n”,x);.写出以下程序运行结果#include<stdio.h>main()intij;charch='#';for(i=l;i<5;i++).写出以下程序运行结果#include<stdio.h>main(){intij;for(i=0;i<3;i++,i++){for(j=4;j>=0;j--){if((j+i)%2){j-Sprintf("%d,”,j);continue;)printf("%d,”,j);))).写出以下程序运行结果#include<stdio.h>main()(intn;for(n=9;n<=50;n++)(if(n%9!=0)continue;printf(4t%d;\n);)).写出以下程序运行结果#include<stdio.h>main(){intij;intsuml,sum2=0;for(i=l;i<=4;i++){suml=l;for(j=l;j<=i;j++)suml=suml*j;sum2=sum2+suml;}printf(ttsum2=%d\n,\sum2);.写出以下程序运行结果#include<stdio.h>voidmain(){intk=0;charc='A';do{switch(c++)(case'A':k++;break;case'B':k-case,C,:k+2;break;case'Dk=k%2;break;case'E':k=k*10;break;default:k=k/3;)k++;}while(c<,K,);printf("k=%d\n”,k);).写出以下程序运行结果#include<stdio.h>main(){inti,a[5];a[OJ=l;printfC<%4dn,a[0]);for(i=0;i<4;i++)(a[i+l]=a[i]*a[i]-l;printfCt%4d,\a[i+l]);}.写出以下程序运行结果#include<stdio.h>voidmain(){inta[6]={l,2,3,4,5,6},i;for(i=2;i<6;i++)a[i]+=a[i-l]+a[i-2];for(i=0;i<6;i++)printf(<4%d,\a[i]);printf(“\n”);).写出以下程序运行结果#include<stdio.h>main(){inta[6],i;for(i=l;i<6;i++){a[i]=9*(i-2+4*(i>3)}%5;printfC%2d,,,a[i]);.写出以下程序运行结果#include<stdio.h>main()(intm[]={l,2,3,4,5,6,7,8,9},i,j,k;for(i=0;i<4;i++)(for(j=0;j<9;j++)printf("%d”,m[j]);putchar(An');.运行时若输入10个数据分别是11152186342991475,写出以下程序运行结果#include<stdio.h>main()(inti,max,min;inta[10J;for(i=0;i<10;i++)scanf("%d”,&a[i]);max=a[0J;min=a[9J;for(i=0;i<10;i++)(if(a[i]>max)max=ali];if(a[i]<min)min=a[i];)printf(**max=%dmin=%d\n,,,max,min);.写出以下程序运行结果#include<stdio.h>voidmain()(chara[8],temp;inti,j;for(i=0;i<7;i++)a[i]=,a,+i;for(i=0;i<3;i++)(temp=a[0];for(j=l;j<7;j++)a[j-l]=a|j];a[6]=temp;a[7]='\0,;printf(44%s\nM,a);.写出以下程序运行结果#include<stdio.h>main()(charslr[]=''ABLCDLHA"cch='*';intk;for(k=0;(c=str[k])!=,\0,;k++){switch(c){case'H':++k;break;case,L,:continue;default:putchar(c);continue;putchar(ch);.写出以下程序的运行结果#include<stdio.h>#incluide<string.h>voidmain(){char ********;inti;for(i=0;i<4;i++)(printf("%s\n”,strl);strl[i]=,4;str1[strlen(str1)-1]=\0';.写出以下程序运行结果#include<stdio.h>main()(inti=0;chara[]="abm'',b[]=''aqid”,c[10];while(a[i]!=\0,&&b[i]!='\0')(if(a[i]>=b[i])c[i]=a[i]-32;elsec[i]=b[i]-32;;i++;}c[i]=,\0,;puts(c).下面的程序是从键盘上输入AaBbCc,写出程序的运行结果#include<stdio.h>main()(chars[80J;inti=0;gets(s);while(s[i]!=,\0,)(if(s[i]<=,z,&&s[i]>=,a,)i++;}puts(s);.写出以下程序的运行结果#include<stdio.h>#include<string.h>voidmain(){chara⑸[20]={"abc'',''defV]23,',"456'',''#$%''};inti,j;for(i=0;i<4;i++;)(j=o;while(a[i][j])j++;strcat(*(a+i)+j,*(a+i+l));for(i=0;i<4;i++)puts(*(a+i));.写出以下程序运行结果#include<stdio.h>main()(inti,j,m,row,col;inta[3][3]={{33,20,30}.{65,78,-30},{24,2,12));m=a[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(a[ij[jj<m){m=a[ij[jj;row=i;col=i;}printf("%d,%d,%d\n'',m,row,col);.写出以下程序运行结果#include<stdio.h>#include<string.h>voidmain(){charline[]=,,123456789^^;inti,k=strlen(line);for(i=0;i<4;i++)(linelk-iJ=,\O,;puts(line+i);.写出以下程序运行结果#include<stdio.h>main(){inta,b;voidswap(intx,inty);a=5;b=10;printf(Mbeforeswapa=%d,b=%d\n,,,a,b);swap(a,b);printf(44afterswapa+%d,b=%d\n,,,a,b);}voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;printf(44inswapx=%d,y=%d\n,\x,y);.写出以下程序运行结果#include<stdio.h>main()(if(m%n==0)returnn;elsereturnf(n,m%n);voidmain()printf(<<%d\nM,f(840,48));).写出以下程序运行结果#include<stdio.h>voidfun(intajntbjntc,intmax,intmin){max=(max=a>b?a:b)>c?max:c;min=(min=a<b?a:b)<c?minx;printf(**max=%dmin=%d\n,\max,min);)voidmain(){intx,y;x=y=0;fiin(88,24,50,x,y);printf(4*max=%dmin=%d\n,,,x,y);.写出以下程序运行结果#include<stdio.h>inta[5];main()(voidfunl(intb[]);voidfun2(intb[]);fun1(a);fun2(a);)voidfun1(intb[])(intk,t=O;for(k=0;k<5;k++,t++)b[k]=t+t;)voidfun2(intb[]){intk;for(k=0;k<5;k++)primf("%3d'',b[k]);.若输入的值是12,写出以F程序运行结果#include<stdio.h>#include<math.h>fun(intn)(intk,r;for(k=2;k<=sqrt(n);k++)(r=n%k;while(!r)printf(t4%d,,,k);n=n/k;if(n>l)printff**");r=n%k;if(n!=l)printf(<%d\n,,,n);)main(){intn;scanf("%d'',&n);printf(**%d=,,,n);if(n<O)printf(<<-tt);n=fabs(n);fun(n);.写出以下程序运行结果#include<stdio.h>intfun3(intm){inti;if(m==21lm==3)return1;if(m<2llm%2==0)return0;fbr(i=3;i<m;i=i+2)if(m%i==0)return0;returnI;)voidmain(){intn;for(n=l;n<10;n++)if(fun3(n)==1)printf("%cT,n);).写出以下程序运行结果#include<stdio.h>intk=l;main(){inti=4;voidfun(int);fun(i);printf(M%d,%d,\n,,,i,k);)voidfun(intm){m+=k;k+=m;chark='B\printf("%d,'',k-'A');printf(44%d,%d,,,,m,k);).写出以下程序运行结果#include<stdio.h>intfl(int,int);intfll(int);voidf2(int);voidmain(){intij;for(i=0;i<5;i++)for(j=0;j<=i;j++)printf("%3d”,fl(i,j));putchar('\n');))intfl(intm,intn){returnfll(m)/fll(n)/fll(m-n);}intfll(intk){if(k<=l)return1;returnk*fll(k-l);)voidf2(intn)(for(inti=l;i<=n;i++)putchar('’);).写出以下程序运行结果#include<stdio.h>voidfun(){staticinta;a+=2;printf(tt%d,,,,a);)main(){intcc;for(cc=1;cc++)fun();printf("\n”);).写出以F程序运行结果#include<stdio.h>main(){intk=4,m=l,p;intfunc(inta,intb);p=func(k,m);printf(tt%d,,\p);p=func(k,m);printf(tt%d,,,p);)intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);.写出以下程序运行结果#include<stdio.h>main()(charb[]="1234'',*p;for(p=b;*p!='\0';p++)printf(4t%s,\p);出以下程序的运行结果。#include<stdio.h>voidmain(){inta[5]={2,4,6,9,12),b={2,3,4,6,8,9),i,j;for(i=0;i<5;i++)for(j=0;j<6;j++)if(*(a+i)==*(b+j))printf("%d”,*(a+i));printf("\n”);.写出以下程序的运行结果。#include<stdio.h>voidsub(int*a,int*b,int*c,intm,intn){inti,j;for(i=0;i<m;i++)*(c+i)=*(a+D;for(j=0;j<n;j++,i++)*(c+i)=*(b+j);}voidmain()inti,x[5]={10,8,23,85,54},y[3]={21,32,16},z[8];sub(x,y,z,5,3,);for(i=0;i<8;i++)printf(t4%d,\z[i]);printf(44\n,);.写出以下程序的运行结果.#include<stdio.h>main(0{staticinta[2][3]+{{6,5,4),{4,5,6)};intm,*ptr:ptr=&a[O][O];m=(*ptr)*(*(ptr+2))*(*(ptr4-4));printfC4%d\n\m);).写出以下程序的运行结果#include<stdio.h>main(){inta[3][4]={13,5,7,11,13,15,17,19,21,23);int(*p)[4],ij;for(p=a,i=0;i<3;i++){for(j=0;j<4;j++)printfC%4d,,,*(*(p+i)+j));prinf(44\nM;.写出以下程序的运行结果#include<stdio,h>#include<string.h>fun(char*s){chart;intsl,s2;s1=0;s2=strlen(s)-1;while(sl<s2){t=*(s+sl)=*(s+s2);*(s+s2)=t;sl++;s2—;main()char*p=*,bcdef,;fun(p);puts(p);.写出以下程序的运行结果#include,stdio,h>voidfun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;)main(){inta,b,c,d;a=6;b=3;fun(a,b,&c,&d);primf("%d,%d\n"d,c);).写出以下程序的运行结果#include<stdio.h>fun(char*s)(inti=0;while(*s!=,\0,)(i++;s++;}retum(i);)main()(char*s="aabbcc”;inti;i=fun(s);).写出以下程序的运行结果#include<stdio.h>main(){chara[]=''ABCDABBFAGH”;char*p;inti,j=O;P=a;fbr(i=O;i<=10:i++)if(*(p+i)=='B')j++;printf("%d\n”,j);.写出以下程序的运行结果#include<stdio.h>main(){inta[]={l,2,3,4},i,x=0;voidsub(int*s,int*y);for(i=0;i<4;i++){sub(a,&x);printf(%d,\x);)printf("\b”);)voidsub(int*s,int*y){staticintt=3:*y=s{t};t-;).写出以下程序的运行结果#include<stdio.h>intfuna(inta„intb){returna+b;}intfunb(inta,intb){returna-b;}intsub(int(*t)(int,int,int),intx,inty){return(*t)(x,y);)main(){intx,(*p)(int,int);p=funa;x=sub(p,9

温馨提示

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

评论

0/150

提交评论