C语言全国二级上机试题(第81--90套)

合集下载

计算机二级考试C语言上机试题(100题)

计算机二级考试C语言上机试题(100题)

1.程序填空题在主函数中从键盘输入若干个数放入数组a中,用0结束输入但不计入数组。

下列给定程序中,函数fun的功能是:输出数组元素中小于平均值的元素。

例如,数组中元素的值依次为34、54、675、456、453、121,则程序的运行结果为34、54、121。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <conio.h>#include <stdio.h>void fun(___1___,int n){double count=0.0;double average=0.0;int i=0;for(i=0;i<n;i++)___2___;average=___3___;for(i=0;i<n;i++)if(a[i]<average){if(i%5==0)printf("\n");printf("%d,",a[i]);}}main(){int a[1000];int i=0;printf("\nPlease enter datas(end with 0):");do{scanf("%d",&a[i]);}while(a[i++]!=0);fun(a,i-1);}【答案】(1) int a[] (2)count+=a[i]或count=count+a[i] (3)count/n2.程序修改题给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)例如:若m中的值为5,则应输出1.463611。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>double fun(int m){double y=1.0;int I;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){int n=5;printf("\nThe result is %lf\n", fun(n));}【答案】(1)将for(i=2;i<m;i++) 改为:for(i=2;i<=m;i++)(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);3.程序设计题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

计算机二级C语言99套上机操作题及答案

计算机二级C语言99套上机操作题及答案

C语言上机操作题.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include<stdio.h>long fun(int n){if(___1___)return(n*fun(___2___));return___3___;}main(){printf("10!=%ld\n",fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>/********found********/IsPrime(int n);{int i,m;m=1;/********found********/for(i=2;i<n;i++)if!(n%i){m=0;break;}return(m);}main(){int j,k;printf("\nplease enter an integer number between2and10000:");scanf("%d",&k);printf("\n\nThe prime factor(s)of%d is(are):",k);for(j=2;j<k;j++)if((!(k%j))&&(IsPrime(j)))printf("%4d,",j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if!(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。

二级C语言机试题库及答案绝对有用

二级C语言机试题库及答案绝对有用
例如: b 所指变量 t 中的学号、姓名、和三门课的成绩依次是: 10002、"ZhangQi"、 93、85、87,修改后输出 t 中的数据应为:10004、" LiJie "、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。
123 456 7 8 9fun 函数首先累加 1、5、9,然后累加 3、5、7,函数的返回值为 30。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。
} for(i=1,j=0; i<n; i=i+2, j++) p[j]=s[i]; /**********found**********/ p[j]=___3___; } main() { char s[80]="baawrskjghzlicda", p[50]; printf("\nThe original string is : %s\n",s); fun(s,p); printf("\nThe result is : %s\n",p); }
6、给定程序中已建立一个带有头结点的单向链表,在 main 函数中将多次调用 fun 函数,每调用一次 fun 函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。
不得增行或删行,也不得更改程序的结构!
不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <string.h> struct student {

全国计算机等级考试二级C语言上机题库(全)

全国计算机等级考试二级C语言上机题库(全)

int i; for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返 回。例如:当形参 n 的值为 10 的时,函数返回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计 substr 所指字符串在 str 所指字符串中出现次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’\0’) 3. 程序设计 请编写一个函数 fun,它的功能是:根据以下公
for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if(max==a[i].s)b[n++]=a[i]; return n; } 第九套 1. 程序填空 给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平 均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至 数据的前部,大于等于平均数的移至 x 所指数组的后部,平均值作为 函数值返回,在主函数中输出平均值和移动后的数据。 第一处 for(i=0;i<N;i++) av+=x[i]/N 第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改 给定程序 MODI1.C 中函数 fun 的功能是:统计字符串各元音字母 (即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0;

NCRE全国计算机等级考试二级C语言上机---南开100题答案

NCRE全国计算机等级考试二级C语言上机---南开100题答案

填空题答案第1题答案第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或1l或1L第2题答案第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)第3题答案第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t第4题答案第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1第5题答案第1处填空:r*r第2处填空:&x第3处填空:x第6题答案第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s) 第7题答案第1处填空:n%10第2处填空:break第3处填空:break第8题答案第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i] 第9题答案第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower第10题答案第1处填空:max=a第2处填空:max=b第3处填空:max=c第11题答案第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c第12题答案第1处填空:tt[i]<='Z'或'Z'>=tt[i]第2处填空:32或'a'-'A'第3处填空:tt第13题答案第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==0或!(n%i)或0==n%i第14题答案第1处填空:*p或*p!='\0'或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第15题答案第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c第16题答案第1处填空:n%100!=0或n%100或0!=n%100第2处填空:n%400==0或!(n%400)或0==n%400第3处填空:flag第17题答案第1处填空:n第2处填空:else第3处填空:a,b第18题答案第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n第19题答案第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)第20题答案第1处填空:i第2处填空:j第3处填空:aa,&n第21题答案第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j第22题答案第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)第23题答案第1处填空:int x[]或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n第24题答案第1处填空:a第2处填空:a第3处填空:b第25题答案第1处填空:n/2第2处填空:i第3处填空:a[n-i-1]第26题答案第1处填空:i=1第2处填空:&&第3处填空:--j或j-1第27题答案第1处填空:j=2第2处填空:i第3处填空:j第28题答案第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s第29题答案第1处填空:0第2处填空:i<=x或x>=i第30题答案第1处填空:--i或i--或i-=1或i=i-1第2处填空:s[i]-'0'第3处填空:t*10+k或k+t*10或10*t+k或k+10*t第31题答案第1处填空:*(p1+i)或p1[i]或*(p1+i)!=0或p1[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[0]!=0第3处填空:*p2++第32题答案第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10第33题答案第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)第34题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1第3处填空:p++;或++p;或p+=1;或p=p+1;第35题答案第1处填空:i<*num或*num>i第2处填空:n++或++n或n+=1或n=n+1第3处填空:*num=n第36题答案第1处填空:&&第2处填空:s[i]-'0'第3处填空:n第37题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第38题答案第1处填空:n/100%10第2处填空:"yes!"第3处填空:"no!"第39题答案第1处填空:"%d",&n第2处填空:str2[i]=str1[i];第3处填空:str2第40题答案第1处填空:"%s",str1第2处填空:%c第3处填空:str2第41题答案第1处填空:"%ld",&n第2处填空:n=-n;或n*=-1;第3处填空:"%ld",n第42题答案第1处填空:*p或p[0]第2处填空:default:b[10]++;第3处填空:p++;或p+=1;或p=p+1;或++p;第43题答案第1处填空:*p或*p!=0或0!=*p 第2处填空:bb[*p-'0']++或bb[*p-'0']+=1第3处填空:num[j]=bb[i]第44题答案第1处填空:0第2处填空:||第45题答案第1处填空:s1-i-1或s1-1-i第2处填空:2*s1或s1*2第46题答案第1处填空:*k第2处填空:s[i]>max或max<s[i] 第3处填空:i第47题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第48题答案第1处填空:n>0或0<n 第2处填空:n%10+'0'或'0'+n%10第3处填空:str[i]='\0'或str[i]=0第49题答案第1处填空:disc<0或0>disc第2处填空:sqrt第3处填空:sqrt第50题答案第1处填空:s第2处填空:*p++第3处填空:*(p)或*p或*p!=0第51题答案第1处填空:x>y或y<x第2处填空:x>z或z<x第3处填空:y>z或z<y第52题答案第1处填空:"out52.dat","w"第2处填空:fputc(ch,fp)第3处填空:fclose(fp)第53题答案第1处填空:i第2处填空:p->next=s第3处填空:p->next第54题答案第1处填空:*p1<*p2或*p2>*p1第2处填空:*p1>*p2或*p2<*p1第3处填空:'\0'或0第55题答案第1处填空:flag=1第2处填空:j%i==0或0==j%i或!(j%i)第3处填空:flag==1或1==flag第56题答案第1处填空:&&第2处填空:fputc(ch,fp1)第3处填空:fclose(fp)第57题答案第1处填空:double第2处填空:j第3处填空:1.0/t或(double)1/t第58题答案第1处填空:&n第2处填空:i=1第3处填空:f*=i或f=f*i或f=i*f第59题答案第1处填空:sum=0第2处填空:sum+=n或sum=sum+n或sum=n+sum第3处填空:ld第60题答案第1处填空:i<n或n>i第2处填空:j<n-1或n-1>j第61题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[i]+=score[i][j]或bb[i]=bb[i]+score[i][j]或bb[i]=score[i][j]+bb[i]第62题答案第1处填空:"%c",&str[i]或"%c",str+i第2处填空:str[i]!='*'或*(str+i)!='*'第3处填空:"%c",str[j]或"%c",*(str+j)第63题答案第1处填空:STU第2处填空:h第3处填空:h第64题答案第1处填空:str1[i]!=''或''!=str1[i]第2处填空:i++或++i或i+=1或i=i+1第65题答案第1处填空:bb[i][j]=1第2处填空:bb[i][j]=0第66题答案第1处填空:j>i或i<j第2处填空:bb[j]=bb[j-1]第3处填空:break第67题答案第1处填空:p=str第2处填空:p[i]++或++p[i]或p[i]+=1或p[i]=p[i]+1第3处填空:s[i]='\0'或s[i]=0第68题答案第1处填空:break第2处填空:'\0'或0第3处填空:*p++第69题答案第1处填空:<第2处填空:*p2或p2[0]第3处填空:str1第70题答案第1处填空:*(pstr+j)或pstr[j]第2处填空:pstr[j]或*(pstr+j)第3处填空:p第71题答案第1处填空:std[3]或std[]或*std第2处填空:PERSON第3处填空:std第72题答案第1处填空:N第2处填空:M第3处填空:bb[i]/N或*(bb+i)/N第73题答案第1处填空:bb[i][j]=0第2处填空:1第3处填空:j==n-1-i或j==n-i-1第74题答案第1处填空:*std或std[0]第2处填空:std[i].age第3处填空:第75题答案第1处填空:&n第2处填空:t*i或i*t第3处填空:s+t或t+s第76题答案第1处填空:i第2处填空:s[j]=s[i]第77题答案第1处填空:N-1第2处填空:bb[n++]=aa[i]第3处填空:i,bb[i]第78题答案第1处填空:fun(char s[],int n)或fun(char*s,int n)第2处填空:j=0第3处填空:s[j]='\0'或s[j]=0第79题答案第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2第2处填空:i<k或k>i第80题答案第1处填空:--i或i--或i-=1或i=i-1 第2处填空:bb[j]=bb[i]第81题答案第1处填空:sum=0第2处填空:t[i][i]第3处填空:1第82题答案第1处填空:i%10第2处填空:g*g*g==i或i==g*g*g 第83题答案第1处填空:break;第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第84题答案第1处填空:&&第2处填空:i,j第85题答案第1处填空:[N]第2处填空:t[i][j]第3处填空:t[j][i]第86题答案第1处填空:N第2处填空:N-1第3处填空:0第87题答案第1处填空:&&第2处填空:g+ 第88题答案第1处填空:s[i]或s[i]!=0或0!=s[i]第2处填空:s[i]==ch或ch==s[i]第3处填空:return n第89题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:32或'a'-'A'第3处填空:i++或++i或i+=1或i=i+1第90题答案第1处填空:STU第2处填空:std[i].num第3处填空:std[i]第91题答案第1处填空:i=1,j=0或j=0,i=1第2处填空:bb[j++]=i第3处填空:return j第92题答案第1处填空:str[i+1]或str[i+1]!='\0'或str[i+1]!=0第2处填空:str[i]=ch第93题答案第1处填空:aa[max]<aa[i]或aa[i]>aa[max]第2处填空:aa[min]>aa[i]或aa[i]<aa[min]第3处填空:aa[max]=aa[min]第94题答案第1处填空:i++或++i或i+=1或i=i+1第2处填空:s[j++]=s[i]第3处填空:s[j]='\0'或s[j]=0第95题答案第1处填空:0.0或0或(double)0第2处填空:n第3处填空:s第96题答案第1处填空:aa[k++]=t或aa[k]=t,k++或aa[k]=t;k++第2处填空:i<j或j>i第97题答案第1处填空:break第2处填空:t[i]第3处填空:u[ul]第98题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:25第3处填空:1第99题答案第1处填空:j%i==0或!(j%i)或0==j%i第2处填空:flag==1或flag或1==flag第3处填空:aver/n第100题答案第1处填空:k=0第2处填空:||第3处填空:s[k]='\0'或s[k]=0改错题答案第1题答案第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))第2题答案第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)第3题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]="\0";应改为s[j]='\0';第4题答案第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题答案第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题答案第1处:p=j应改为p=j;第2处:p=i;应改为p=j;第8题答案第1处:void fun(char*p);应改为void fun(char*p)第2处:p=q+i;应改为q=p+i;第9题答案第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;第10题答案第1处:void fun(char*s,*t1,*t2,*w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题答案第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题答案第1处:a=NuLL;应改为a=NULL;3/13第2处:if(r==p)应改为if(*r==*p) 第13题答案第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t;第14题答案第1处:int r;应改为double r;第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)第15题答案第1处:void fun(char str,char ch)应改为void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str=='\0')第3处:str[1]='0';应改为str[1]='\0';或str[1]=0;第16题答案第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h; 第17题答案第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}第18题答案第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0) 第20题答案第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题答案第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y+=1/(i*i);应改为y+=1.0/(i*i);第23题答案第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题答案第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0') 第25题答案第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题答案第1处:应填sum=0;第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]);第27题答案第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题答案第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1第3处:a[i]='0';应改为a[i]='\0';或a[i]=0;第29题答案第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题答案第1处:long k;应改为long k=1;第2处:num\=10;应改为num/=10;第31题答案第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题答案第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题答案第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0)第2处:(*s)++;应改为s++;第34题答案第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)第35题答案第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题答案第1处:j=1;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)第37题答案第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题答案第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题答案第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;第40题答案第1处:for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++)第2处:t=i;应改为p=i;第41题答案第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42题答案第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0;第43题答案第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题答案第1处:fun(int**a,int m)应改为voidfun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题答案第1处:void fun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题答案第1处:fun(int n)应改为doublefun(int n)第2处:return sum应改为returnsum;第47题答案第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题答案第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题答案第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题答案第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];第51题答案第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt)第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i];第52题答案第1处:int fun(double x[],int n)应改为int fun(double x[],int n){第53题答案第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1:第54题答案第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t)第2处:(*ss)++;应改为ss++;第3处:(*tt)++;应改为tt++;第55题答案第1处:y=0;应改为y=1;第2处:d=i-a;应改为d=a-i;第56题答案第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6])第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0)第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);第57题答案第1处:while(i>j)应改为while(i<j)或while(j>i)第2处:c=0;应改为*c='\0';或*c=0; 第58题答案第1处:for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++)第2处:t[s1]='\0';应改为t[2*s1]='\0'; 第59题答案第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 第60题答案第1处:if(i%k!=0)应改为if(i%k==0)第2处:if(k<i)应改为if(k>=i)第61题答案第1处:fun(int m)应改为double fun(int m)第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100)第62题答案第1处:break应改为break;第63题答案第1处:i=1;应改为i=0;第2处:while(i<3||*p)应改为while(i<3&&*p)第3处:b[k]='';应改为b[k++]='';第64题答案第1处:c=c-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第65题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:s1=s1*100;应改为s1=s1*10;第66题答案第1处:fun(int n)应改为doublefun(int n)第2处:b+=c;应改为b=c;第67题答案第1处:fun(double a,double x0)应改为double fun(double a,double x0)第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6)第68题答案第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;第69题答案第1处:void upfst(char p)应改为void upfst(char*p)第70题答案第1处:int fun(int*b);应改为intfun(int*b)第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++)第3处:return k;应改为return i;第71题答案第1处:if k>1应改为if(k>1)第72题答案第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr)第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++)第73题答案第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i;第2处:应填return t;第74题答案第1处:c=aa[i];应改为ch=aa[i];第75题答案第1处:int fun(int m,int xx[][])应改为int fun(int m,int xx[][M])第2处:printf("%4f",xx[i][j]);应改为printf("%4d",xx[i][j]);第76题答案第1处:long s1=0;应改为long s1=1;第2处:s\=10;应改为s/=10;第77题答案第1处:void fun(char a)应改为voidfun(char*a)第78题答案第1处:k++应改为k++;第2处:if(m=k)应改为if(m==k)第79题答案第1处:c[t]="\0";应改为c[t]='\0';第80题答案第1处:fun(int n)应改为doublefun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为doublefun(int n)第2处:for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)第82题答案第1处:result*=--n;应改为result*=n--;第2处:应填return result;第83题答案第1处:void fun(int x,int y)应改为void fun(int*x,int*y)第2处:t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;第84题答案第1处:void fun(int m,int k);应改为void fun(int m,int k)第2处:aa[i]=m/k;应改为aa[i]=m%k;第3处:printf("%d",aa[i]);应改为printf("%d",aa[i-1]);第85题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[i]='\0';应改为s[j]='\0';第86题答案第1处:float*k;应改为float k;第2处:if(*s<*p)应改为if(*s>*p)第87题答案第1处:void fun(int a)应改为voidfun(int a[M])或void fun(int a[])或void fun(int*a)第2处:a[j]=a[j+1];应改为a[j]=a[j-1];第88题答案第1处:for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++)第2处:if(k>=1&&k<=6)应改为if(k>=0&&k<=6)5/13第89题答案第1处:for(i=1;i<y;i++)应改为for(i=1;i<=y;i++)第2处:t=t/1000;应改为t=t%1000; 第90题答案第1处:d=0;应改为d=1;第2处:s=1;应改为s=0;第3处:s=s/10;应改为d=d/10;第91题答案第1处:for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)第2处:if(t[j]<t[j+1])应改为if(t[j]>t[j+1])第92题答案第1处:long s=0,t=1;应改为long s=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j<n;j++)第3处:t=t%10;应改为t=t/10;第93题答案第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;第94题答案第1处:int sum=0.0;应改为double sum=0.0;第2处:sum\=c;应改为sum/=c;第95题答案第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;第96题答案第1处:fun(int k)应改为double fun(int k)第2处:return s应改为return s;第97题答案第1处:f(double x)应改为double f(double x)第2处:return s应改为return s;第98题答案第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);第99题答案第1处:int i,j,k,sum;应改为int i,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)第100题答案第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为*zero=count; 编程题答案第1题答案int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}第2题答案void fun(int*a,int*n){int i,j=0;for(i=2;i<1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}第3题答案void fun(int x,int pp[],int*n){int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=i;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}第4题答案void fun(char*tt,int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}tt++;}}第5题答案void fun(int m,int k,int xx[]){int g=0,i,j,flag=1;for(i=m+1;i<m*m;i++){for(j=2;j<i;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if(flag==1&&j>=i){if(k>=0){xx[g++]=i;k--;}elsebreak;}}}第6题答案void fun(char a[],char b[],int n){int i,j=0;for(i=0;i<LEN;i++)if(i!=n){b[j]=a[i];j++;}b[j]='\0';}第7题答案void fun(int*s,int t,int*k){int i,max;max=s[0];for (i=0;i<t;i++)if (s[i]>max){max=s[i];*k=i;}}第8题答案float fun(int n){int i;float s=1.0,t=1.0;for(i=2;i<=n;i++){t=t+i;s=s+1/t;}return s;}第9题答案float fun(int m,int n){float p,t=1.0;int i;for(i=1; i<=m; i++)t=t*i;p=t;for(t=1.0,i=1; i<=n; i++)t=t*i;p=p/t;for(t=1.0,i=1; i<=m-n; i++)t=t*i;p=p/t;return p;}第10题答案float fun(){float x1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);return x1;}第11题答案int fun(int a[][N]){int i,j;for(i=0; i<N; i++)for(j=0; j<=i; j++)a[i][j]=0;}第12题答案double fun(int w[][N]){int i,j,k=0;double s=0.0;for(j=0; j<N; j++){s+=w[0][j];k++;}for(j=0; j<N; j++){s+=w[N-1][j];k++;}for(i=1; i<=N-2; i++){s+=w[i][0];k++;}for(i=1; i<=N-2; i++){s+=w[i][N-1];k++;}return s/=k;}第13题答案void fun(int tt[M][N],int pp[N]){int i,j,min;for(j=0; j<N; j++){min=tt[0][j];for(i=0; i<M; i++){if(tt[i][j]<min)min=tt[i][j];}pp[j]=min;}}第14题答案int fun(int a[M][N]){int i,j,s=0;for(j=0; j<N; j++){s+=a[0][j];s+=a[M-1][j];}for(i=1; i<=M-2; i++){s+=a[i][0];s+=a[i][N-1];}return s;}第15题答案unsigned fun(unsigned w){unsigned t,s=0,s1=1,p=0;t=w;while(t>10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}return s;}第16题答案float fun(float h){long t;float s;h=h*1000;t=(h+5)/10;s=(float)t/100.0;return s;}第17题答案void fun(char*s){char ch;int i,m,n;i=0;m=n=strlen(s)-1;while(i<(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;i++;m--;}}第18题答案void fun(int array[3][3]){int i,j,temp;for(i=0; i<3; i++)for(j=0; j<i;j++){temp=array[i][j];array[i][j]=array[j][i];array[j][i]=temp;}}第19题答案void fun(char s[],int c){int i=0;char*p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]='\0';}第20题答案int fun(int lim,int aa[MAX]){int k=0,i,j;for(i=lim; i>1; i--){for(j=2; j<i; j++)if(i%j==0)break;elsecontinue;if(j>=i){aa[k]=i;k++;}}return k++;}第21题答案void fun(char*s,int num){char t;int i,j;for(i=1; i<num-2; i++)for(j=i+1; j<num-1; j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}7/13}第22题答案double fun(STREC*h){double max;STREC*q=h;max=h->s;do{if(q->s>max)max=q->s;q=q->next;}while(q!=0);return max;}第23题答案int fun(char*str){int i,n=0,fg=1;char*p=str;while(*p){n++;p++;}for(i=0; i<n/2; i++)if(str[i]==str[n-1-i]);else{fg=0;break;}return fg;}第24题答案long fun(char*p){long s=0,t;int i=0,j,n=strlen(p),k,s1;if(p[0]=='-')i++;for(j=i; j<=n-1; j++){t=p[j]-'0';s1=10;for(k=j; k<n-1; k++)t*=s1;s+=t;}if(p[0]=='-')return-s;elsereturn s;}第25题答案char*fun(char*s,char*t) {char*p,*t1=t,*s1=s;int n=0,m=0;while(*s1){n++;s1++;}while(*t1){m++;t1++;}if(n>=m)p=s;elsep=t;return p;}第26题答案double fun(double eps){double s;float n,t,pi;t=1; pi=0; n=1.0; s=1.0;while((fabs(s))>=eps){pi+=s;t=n/(2*n+1);s*=t;n++;}pi=pi*2;return pi;}第27题答案void fun(int m,int*a,int*n){int i,j=0; *n=0;for(i=1; i<=m; i++)if(i%7==0||i%11==0){a[j]=i;j++;}*n=j;}第28题答案void fun(int a[],int n,int*max,int*d){int i;*max=a[0];*d=0;for(i=0; i<n; i++)if(a[i]>*max){*max=a[i];*d=i;}}第29题答案void fun(char*ss){int i,n;n=strlen(ss);for(i=1; i<n; i+=2)if(ss[i]>='a'&&ss[i]<='z')ss[i]=ss[i]-32;}第30题答案int fun(int a[][M]){int i,j,max;max=a[0][0];for(i=0; i<2; i++)for(j=0; j<M; j++)if(a[i][j]>max)max=a[i][j];return max;}第31题答案void fun(char*s,char t[]){int i,j=0,n;n=strlen(s);for(i=0; i<n; i++)if(i%2==0&&s[i]%2==0){t[j]=s[i];j++;}t[j]='\0';}第32题答案void fun(char*s,char t[]){int i,j=0,n;n=strlen(s);for(i=0; i<n; i++)if(i%2!=0&&s[i]%2!=0){t[j]=s[i];j++;}t[j]='\0';}第33题答案void fun(char*a,int n){int i=0,k=0;char*p,*t;p=t=a;while(*t)t++;t--;while(*t=='*'){k++;t--;}t++;if(k>n){while(*p&&p<t+n){a[i]=*p;i++;p++;}a[i]='\0';}}第34题答案int fun(STREC*a,STREC*b){int i,j=0,n=0,max;max=a[0].s;for(i=0; i<N; i++)if(a[i].s>max)max=a[i].s;for(i=0; i<N;i++)if(a[i].s==max){*(b+j)=a[i];j++;n++;}return n;}第35题答案void fun(char*str){int i=0;char*p=str;while(*p){if(*p!=''){str[i]=*p;i++;}p++;}str[i]='\0';}第36题答案void fun(char*a){int i=0,n=0;char*p;p=a;while(*p=='*'){n++;p++;}while(*p){a[i]=*p;i++;p++;}while(n!=0){a[i]='*';i++;n--;}a[i]='\0';}第37题答案void fun(STREC*p) {double av=0.0;int i;for(i=0; i<N; i++)av+=p->s[i];av/=N;p->ave=av;}第38题答案int fun(char*ss,char c) {int n=0;while(*ss){if(*ss==c)n++;ss++;}return n;}第39题答案void fun(int*w,int p,int n) {int b[N],i,j=0;for(i=0; i<=p; i++)b[i]=w[i];for(i=p+1; i<n; i++){w[j]=w[i];j++;}for(i=0; i<=p; i++){w[j]=b[i];j++;}}第40题答案void fun(char*w,int m){char b[N];int i,j=0;for(i=0; i<m; i++){b[j]=w[i];j++;}for(i=0; i<strlen(w)-m; i++)w[i]=w[i+m];for(j=0; j<m; j++){w[i]=b[j];i++;}w[i]='\0';}第41题答案void fun(char(*s)[N],char*b){int i,j,k=0;for(j=0; j<N; j++)for(i=0; i<M; i++){b[k]=*(*(s+i)+j);k++;}b[k]='\0';}第42题答案void fun(int a[][N],int m){int i,j;for(j=0; j<N; j++)for(i=0; i<=j; i++)a[i][j]=a[i][j]*m;}第43题答案char*fun(char(*a)[81],int num){int i;char*max;max=a[0];for(i=0; i<num; i++)if(strlen(max)<strlen(a[i]))max=a[i];return max;}第44题答案int fun(char*str,char*substr){int n;char*p,*r;n=0;while(*str){p=str;r=substr;while(*r)if(*r==*p){r++;p++;}elsebreak;if(*r=='\0')n++;str++;}return n;}第45题答案void fun(char*a,int n,int h,int e){int i=0;char*p;for(p=a+h; p<a+n-e; p++){*(a+i)=*p;i++;}*(a+i)='\0';}第46题答案void fun(STREC a[]){int i,j;STREC t;for(i=0; i<N-1; i++)for(j=i; j<N; j++)if(a[i].s<a[j].s){t=a[i];a[i]=a[j];a[j]=t;}}第47题答案void fun(char*ss){int i,n=0;char*p=ss;while(*p){n++;p++;}for(i=0; i<n; i++)if((ss[i]>='a'&&ss[i]<='z')&&i%2!=0)ss[i]=ss[i]-32;ss[i]='\0';}第48题答案void fun(int a,int b,long*c){*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;}第49题答案void fun(char*s,char t[]){int i,j=0,n=strlen(s);for(i=0; i<n; i++)if(i%2==0&&s[i]%2!=0);9/13else{t[j]=s[i];j++;}t[j]='\0';}第50题答案void fun(STU a[],STU*s){int i,max;max=a[0].s;for(i=0; i<N; i++)if(a[i].s>max){max=a[i].s;*s=a[i];}}第51题答案void fun(int m,int*k,int xx[]){int i,j;int t=0;for(i=2; i<m; i++){j=2;while(j<i){if(i%j==0){xx[t]=i;t++;break;}j++;}*k=t;}}第52题答案void fun(char p1[],char p2[]){int i=0,n=0;char*p=p1,*q=p2;while(*p){p++;n++;}i=n;while(*q){p1[i]=*q;q++;i++;}p1[i]='\0';}第53题答案void fun(int a[3][3],int b[3][3]){int i,j,at[3][3];for(i=0; i<=2; i++)for(j=0; j<=2; j++)at[i][j]=a[j][i];for(i=0; i<3; i++)for(j=0; j<3; j++)b[i][j]=a[i][j]+at[i][j]; }第54题答案double fun(STREC*a,STREC*b,int*n){double aver=0.0;int i,j=0;*n=0;for(i=0; i<N; i++)aver+=a[i].s;aver/=N;for(i=0; i<N; i++)if(a[i].s<aver){b[j]=a[i];(*n)++;j++;}return aver;}第55题答案void fun(int(*s)[10],int*b,int*n,int mm,intnn){int i,j;for(i=0; i<mm; i++)for(j=0; j<nn; j++){b[*n]=*(*(s+i)+j);*n=*n+1;}}第56题答案void fun(char*a,char*p){int i=0;char*q=a;while(q<=p){if(*q!='*'){a[i]=*q;i++;}q++;}while(*q){a[i]=*q;i++;q++;}a[i]='\0';}第57题答案int fun(STREC*a,STREC*b,int l,int h){int i,j=0;for(i=0; i<N; i++)if(a[i].s>=l&&a[i].s<=h){b[j]=a[i];j++;}return j;}第58题答案double fun(int n){double s=0.0;int i;for(i=1; i<n; i++)if(i%3==0&&i%7==0)s=s+i;s=sqrt(s);return s;}第59题答案void fun(char a[M][N],char*b){int i,j,k=0;for(i=0; i<M; i++){for(j=0; j<N; j++)if(*(*(a+i)+j)){b[k]=*(*(a+i)+j);k++;}elsebreak;b[k]='\0';}}第60题答案int fun(int a[],int n){int i,t,j=0,*p=a;t=p[0];for(i=0; i<=n; i++)if(t==p[i]);else{a[j]=t;t=p[i];j++;}if(i>=n)a[j]=t;return j;}第61题答案void fun(int*a,int*b){int i,j;for(j=0; j<M; j++)b[j]=0;for(i=0; i<N; i++)if(a[i]>=0&&a[i]<=9)b[0]+=1;else if(a[i]>=10&&a[i]<=19)b[1]+=1;else if(a[i]>=20&&a[i]<=29)b[2]+=1;else if(a[i]>=30&&a[i]<=39)b[3]+=1;else if(a[i]>=40&&a[i]<=49)b[4]+=1;else if(a[i]>=50&&a[i]<=59)b[5]+=1;else if(a[i]>=60&&a[i]<=69)b[6]+=1;else if(a[i]>=70&&a[i]<=79)b[7]+=1;else if(a[i]>=80&&a[i]<=89)b[8]+=1;else if(a[i]>=90&&a[i]<=99)b[9]+=1;elseb[10]+=1;。

国家二级C语言机试(操作题)模拟试卷781(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷781(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷781(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。

此解决方案的项目中包含一个源程序文件blank1.c。

在此程序中,通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。

函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#inclucle<stdio.h >#include<string.h>struct student{long srlo;char name[10];float score[3];};void fun(struct student a[],int n){/*********found*********/【1】t;int i,j;/*********found*********/for(i=0;i<【2】;i++)for(j=i+1;j<n;j++)/*********found*********/if(strcmp(【3】)>0){t=a[i];a[i]=a[j];a[j]=t;}}main( ){struct students[4]={{10001,”ZhangSan”,95,80,88},{10002,”LiSi”,85,70,78},{10003,”CaoKai”,75,60,88},{10004,”FangFang”,90,82,87}};int i,j;printf(“\n\nThe original data:\n\n”);for(j=0;j<4;j++){printf(“\nNo:%ld Name:%﹣8s Scores:”,s[j].sno,s[j].name);for(i=0;i<3;i++)printf(“%6.2f”,s[j].score[i]);printf(“\n”);}fun(s,4);printf(“\n\nThe data after sorting:\n\n”);for(j=0;j<4;j++){printf(“\nNo:%ld Name:%一8sScores:”,s[j].sno,s[j].name);for(i=0;i<3;i++)printf(“%6.2f”,s[j].score[i]);printf(“\n”);}}正确答案:(1)struct student(2)n﹣1(3)a[i].name,a[j].name解析:填空1:变量t是中间变量,用来存放结构体数组中的元素,因此应定义为结构体类型。

c语言二级考试题及答案

c语言二级考试题及答案

c语言二级考试题及答案一、单项选择题(本大题共40小题,每小题2分,共80分)1. 在C语言中,下列哪个选项是正确的整型常量?A. 0.5B. 0x12C. 0x12.0D. 0x12L答案:B2. C语言中,下列哪个选项是正确的字符串字面量?A. "hello"B. 'hello'C. "hello'"D. 'hello"答案:A3. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C4. 下列哪个选项是C语言中的关键字?A. intB. integerC. realD. double答案:A5. 在C语言中,下列哪个选项是正确的二进制常量表示?A. 0x1BB. 0b1101C. 0B1101D. 0x1101答案:B6. C语言中,下列哪个选项是正确的浮点型常量表示?A. 3.14B. 3.14e2C. 3.14E-2D. 3.14f答案:C7. 在C语言中,下列哪个选项是正确的字符常量表示?A. 'a'B. "a"C. 'ab'D. '0x61'答案:A8. 下列哪个选项是C语言中合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A9. 在C语言中,下列哪个选项是正确的函数声明?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A10. 下列哪个选项是C语言中合法的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)();答案:A11. 在C语言中,下列哪个选项是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };答案:C12. 下列哪个选项是C语言中合法的枚举声明?A. enum {RED, GREEN, BLUE} color;B. enum color {RED, GREEN, BLUE};C. enum {RED, GREEN, BLUE};D. enum color {0, 1, 2};答案:B13. 在C语言中,下列哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI(3.14159)D. #define PI 3.14159;答案:A14. 下列哪个选项是C语言中合法的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A15. 在C语言中,下列哪个选项是正确的条件语句?A. if (a > b) { ... }B. if a > b { ... }C. if (a > b) then { ... }D. if a > b then { ... }答案:A16. 下列哪个选项是C语言中合法的循环语句?A. for (i = 0; i < n; i++) { ... }B. for i = 0; i < n; i++ { ... }C. for (i = 0; i < n; i++) { ... }D. for i = 0 to n { ... }答案:A17. 在C语言中,下列哪个选项是正确的switch语句?A. switch (a) { case 1: ...; case 2: ...; }B. switch (a) { case 1: ...; case 2: ...; default: ...; }C. switch (a) { case 1: ...; case 2: ...; break; }D. switch (a) { case 1: ...; case 2: ...; default: ...; }答案:D18. 下列哪个选项是C语言中合法的goto语句?A. goto label;B. goto 10;C. label: ...D. goto;答案:C19. 在C语言中,下列哪个选项是正确的函数调用?A. printf("%d", 10);B. scanf("%d", &a);C. printf("%d", a);D. scanf("%d", a);答案:B20. 下列哪个选项是C语言中合法的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, b) { return a + b; }C. int add(int a, int b) { return a + b; }D. int add(a, b) { return a + b; }答案:A21. 在C语言中,下列哪个选项是正确的递归函数调用?A. int factorial(int n) { return n * factorial(n - 1); }B. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }C. int factorial(int n) { return n * factorial(n + 1); }D. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }答案:B22. 下列哪个选项是C语言中合法的数组初始化?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3, 4};C. int a[5] = {1, 2, 3};D. int a[5] = {1, 2, 3, 4, 5, 6};答案:A23. 在C语言中,下列哪个选项是正确的字符串复制?A. strcpy(a, b);B. strcopy(a, b);C. copy(a, b);D. strcp(a, b);24. 下列哪个选项是C语言中合法的内存分配?A. int *p = (int *)malloc(sizeof(int) * 10);B. int *p = malloc(10 * sizeof(int));C. int *p = (int *)malloc(10);D. int *p = malloc(sizeof(int) * 10);答案:A25. 在C语言中,下列哪个选项是正确的内存释放?A. free(p);B. delete p;C. deallocate p;D. dispose p;答案:A26. 下列哪个选项是C语言中合法的指针运算?B. p--;C. p += 2;D. p = 2;答案:A27. 在C语言中,下列哪个选项是正确的结构体赋值?A. Point p1 = {1, 2};B. Point p1 = p2;C. Point p1 = {1, 2};D. Point p1 = {1, 2, 3};答案:B28. 下列哪个选项是C语言中合法的枚举值使用?A. color = RED;B. color = 0;C. color = "RED";D. color = 1;答案:A29. 在C语言中,下列哪个选项是正确的宏替换?A. #define SQUARE(x) x * xB. #define SQUARE(x) (x) * (x)C. #define SQUARE(x) x * xD. #define SQUARE(x) (x) * (x)答案:D30. 下列哪个选项是C语言中合法的文件操作?A. FILE *fp = fopen("file.txt", "r");B. FILE *fp = open("file.txt", "r");C. FILE *fp = fopen("file.txt", "w");D. FILE *fp = open("file.txt", "w");答案:A31. 在C语言中,下列哪个选项是正确的文件读取?A. fscanf(fp, "%d", &a);B. scanf(fp, "%d", &a);C. fscanf(fp, "%d", a);D. scanf(fp, "%d", a);答案:A32. 下列哪个选项是C语言中合法的文件写入?A. fprintf(fp, "%d", a);B. printf(fp, "%d", a);C. fprintf(fp, "%d", &a);D. printf(fp, "%d", &a);答案:A33. 在C语言中,下列哪个选项是正确的文件关闭?A. close(fp);B. fclose(fp);C. fclose(fp);D. close(fp);答案:B34. 下列哪个选项是C语言中合法的错误处理?A. if (fp == NULL) { perror("Error opening file"); exit(1); }B. if (fp == NULL) { printf("Error opening file"); exit(1); }C. if (fp == NULL) { perror("Error opening file"); return 1; }D. if (fp == NULL) { printf("Error opening file"); return 1; }答案:A35. 在C语言中,下列哪个选项是正确的位运算?A. a & b;B. a && b;D. a || b;答案:A36. 下列哪个选项是C语言中合法的逻辑运算?A. a && b;B. a || b;C. a & b;D. a | b;答案:A37. 在C语言中,下列哪个选项是正确的自增运算?A. a++;B. ++a;C. a += 1;D. a = a + 1;38. 下列哪个选项是C语言中合法的自减运算?A. a--;B. --a;C. a -= 1;D. a = a - 1;答案:A39. 在C语言中,下列哪个选项是正确的类型转换?A. (int)a;B. int(a);C. (int)(a);D. int a;答案:C40. 下列哪个选项是C语言中合法的sizeof运算?A. sizeof(a);B. sizeof int;C. sizeof(int);D. sizeof "string";答案:C二、程序填空题(本大题共2小题,每小题10分,共20分)1. 给定以下代码片段,请填写缺失的部分以实现计算并打印两个整数的和。

计算机二级C语言上机题库及答案(100套)

计算机二级C语言上机题库及答案(100套)

~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("10!=%ld\n", fun(10));}第1 处填空:n>1 或1<n第2 处填空:n-1第3 处填空:1 或11 或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1 处:Isprime(int n);应改为Isprime(int n)第2 处:if !(n%i)应该为if(!(n%i))编程题M 个人的成绩存放在score 数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below 所指的数组中。

国家二级C语言机试(操作题)模拟试卷810(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷810(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷810(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。

例如,主函数中给出了4名学生的数据,则程序运行的结果为:学号:N1002学号:N1006共有2位学生有不及格科目请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>typedef struct{char num[8];double score[2];/* * * * * * found * * * * * */}___(1)___;int fun(STU std[],int n){int i,k=0;for(i=0;i<n;i+ +)/* * * * * * found * * * * * */if(std[i].score[0]<60___(2)___std[i].score[1]<60){k+ +;printf(″学号:%s″,std[i].num);}/* * * * * * found * * * * * */return___(3)___;}main( ){STU std[4]={″N1001″,76.5,82.0,″N1002″,53.5,73.0,″N1005″,80.5,66.0.″N1006″,81.0,56.0};printf(″\n共有%d位学生有不及格科目\n″,fun(std,4));}正确答案:(1)STU (2)||(3)k解析:本题考查:对结构体的定义和使用,以及逻辑运算符的使用。

填空1:STU结构体别名,通过main( )中的语句可知。

填空2:||只要学生两门课成绩有不及格的,就算不及格,因此使用或运算。

(完整word版)国家计算机2级等级考试-C语言上机编程100题库真题

(完整word版)国家计算机2级等级考试-C语言上机编程100题库真题

1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:void fun(int *a,int *n) {int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 ||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中”a"到”z”26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’:pp[0]++;break;case ‘b': pp[1]++;break;case ‘c’:pp[2]++;break;case ‘d’:pp[3]++;break; case ‘e’: pp[4]++;break; case ‘f': pp[5]++;break; case ‘g': pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’:pp[8]++;break; case ‘j':pp[9]++;break;case ‘k’:pp[10]++;break;case ‘l’:pp[11]++;break; case ‘m’: pp[12]++;break;case ‘n’:pp[12]++;break; case ‘o’: pp[14]++;break; case ‘p': pp[15]++;break; case ‘q’:pp[16]++;break; case ‘r':pp[17]++;break; case ‘s': pp[18]++;break;case ‘t’: pp[19]++;break; case ‘u’:pp[20]++;break;case ‘v’:pp[21]++;break; case ‘w': pp[22]++;break;case ‘x’:pp[23]++;break; case ‘y’:pp[24]++;break; case ‘z’: pp[25]++;break;}tt++;}}5: 第5题请编写一个函数void fun(int m,int k,int xx []),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

2020年全国计算机等级考试二级c语言上机精选题库(共60套)

2020年全国计算机等级考试二级c语言上机精选题库(共60套)
r=(r*t+c)%m;
return((double)r/m);
}
main()
{
int age[N], i, d[M];
FILE *out ;
for(i=0; i<N; i++)
age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0; i<N; i++)
}
二、改错题
下列给定程序中,函数fun的功能是:根据整型行参m,计算如下公式的值。
y=
例如,若m=2000,则应该输出:0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include <conio.h>
#include <stdio.h>
/********found********/
fun(int m)
h= a[i];
*s =h;
}
main()
{
STU a[N] =
{
{"A01", 81}, {"A02", 89}, {"A03", 66}, {"A04", 87},
{"A05", 77}, {"A06", 90}, {"A07", 79}, {"A08", 61},
{"A09", 80}, {"A10", 71}
printf((i+1)%10==0?"%4d\n":"%4d",age[i]);

二级C语言上机试题汇编(含答案)

二级C语言上机试题汇编(含答案)

二级C语言上机试题汇编说明:本题库共有100套题目(每套题目包含3道题:一道程序填空题、一道程序修改题、一道程序设计题)真实考试题库中将有50套题目,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取哪一套题,所以大家只有把全部题库都理解才能万无一失)※※※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数fun的功能是:将形参n所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n);printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。

国二考试C语言程序设计上机题及答案

国二考试C语言程序设计上机题及答案

使用说明:此100套编程题来源于清华同方光盘电子出版社出版的《全国计算机等级考试二级C语言程序设计上机考试题库》,特此声明。

国二考试二级C语言程序设计100套题,各个版本的书大概都差不多。

以下是本人精心整理的题库100题(包括答案以及题目要求),希望给悉心复习的你一点小小的启发和帮助啦。

因为写得匆忙,如果有不恰当之处,恳请各路编程高手给予批评指正(本人纯属业余的编程爱好者)!注:答案仅供参考!!——作者100套题第1套编程题#include <>#define M 100void fun (int m,int *a,int *n){int i;*n=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)a[(*n)++]=i;}main( ){ int aa[M],n,k;fun(50,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0) printf("\n");else printf("%4d",aa[k]);printf("\n") ;}题目要求:将1~m之间能被7或11整除的所有整数放入数组a,通过n返回数的个数。

如m=50,则程序输出:7 11 14 21 22 28 33 35 42 44 49.100套题第2套编程题#include<>voidfun(intm,int*k,intxx[]){inti,j,t=0;for(i=4;i<m;i++){for(j=2;j<i;j++)if(i%j==0){xx[t++]=i;break;}}*k=t;main(){intm,n,zz[100];printf("\nPleaseenteranintegernumberbetween10and100:");scanf("%d",&n);fun(n,&m,zz);printf("\n\nThereare%dnon-primenumberslessthan%d:",m,n);for(n=0;n<m;n++)printf("\n%4d",zz[n]);}题目要求:将所有大于1小于整数m的非素数存入xx数组,其个数通过k返回。

最新最全二级c语言上机题105套参考答案

最新最全二级c语言上机题105套参考答案

1. 程序填空题(1) M (2) < (3) k2. 程序改错题(1) || 改为&& if((tt[i]>=‟a‟ && (tt[i]<=‟z‟))(2) +改为-tt[i]-=32;3. 程序设计题void fun( int m, int *k, int xx[] ){int i,j;int n=0;for(i=4;i<m;i++){for (j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n;}第2套题参考答案1.程序填空题(1) j++ 或j+=1, ++j, j=j+1 (2) s[i]=t1[i] (3) j2. 程序改错题(1) 将,改为; for(j=i+1; j<6; j++)(2) *(pstr+j) *(patr+i)=pstr+j;3.程序设计题int fun(char *ss, char c){int i, n=0;for(i=0;ss[i]!='\0';i++)if(ss[i]==c)n++;return n;}另一种写法int fun(char *ss, char c){int i=0;for(;*ss!='\0';ss++)if(*ss==c)i++;return i;}1. 程序填空题(1) && (2) 0 或者…\0‟(3) s[j] 或*(s+j)2. 程序改错题(1)将<改为<= for(i=2; i<=m; i++)(2)将1改为1.0 y+=1.0/(i*i); y+=(double)1/(i*i);3. 程序设计题void fun ( int a[3][3], int b[3][3]){int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}第4套参考答案1.程序填空题(1) s[i] (2) …9‟(3) *t=n2.程序改错题(1) t=*x; *x=y;(2) return t;3.程序设计题void fun (int *a, int *n){int i,k=0;for(i=1; i<1000; i++)if(((i%7==0) || (i%11==0)) && (i%77 !=0))a[k++]=i;*n=k;}第5套参考答案1.程序填空题(1) 1 (2) s[k]或*(s+k) (3) c2.程序改错题(1) long s=0, t=0; (2) t=t/10;3.程序设计题void fun(char *tt, int pp[]){int i;for(i=0;i<26;i++)pp[i]=0;for(i=0; tt[i]!='\0'; i++)if((tt[i]>='a') && (tt[i]<='z'))pp[tt[i]-'a']++;} //tt[i]可以用*tt代替,i++可以用tt++代替,省略i=0第6套参考答案1.程序填空题(1) t=i; (2) i (3) …\0‟或者02.程序改错题(1)while(fabs(t)>=num)(2)t=s/n;3.程序设计题void fun (char a[], char b[], int n){int i,j=0;for(i=0;a[i]!=0;i++)if(i!=n)b[j++]=a[i];b[j]='\0';}第7套参考答案1.程序填空题(1) …\0‟(2) 0 (3) c2.程序改错题(1) double sum=0.0; (2) sum/=c;3.程序设计题float fun(int n){int i, t=0;float s=0.0;for(i=1;i<=n;i++){t=t+i;s=s+1.0/t;}return s;}第8套参考答案1.程序填空题(1) i++ (2) m (3) m2.程序改错题(1)while((high>=2) && (n<10) ) //丢了括号(2)break; //丢了分号3.程序设计题double fun(){double x1=0.0, x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=0.000001);return x1;}第9套参考答案1.程序填空题(1) N (2) N-1 (3) 02.程序改错题(1) s=s+(double)(n+1)/n (2) return t;3.程序设计题int fun( int t){int f0=0, f1=1,f;do{f=f0+f1;f0=f1;f1=f;}while(f<t);return f;}第10套参考答案1.程序填空题(1) 0 (2) j-- (3) j2.程序改错题(1) double f(double x) (2) return s;3.程序设计题double fun( int m ){double s=0.0,t=0.0;int i;for(i=1;i<=m;i++)t=t+log(i);s=sqrt(t);return s;}第11套参考答案1.程序填空题(1) N (2) t[i][j] (3) t[j][i]2.程序改错题(1) (m)/(n) (2) value3.程序设计题void fun( char *a ){char *p=a;int i=0;while (*p!='\0' && *p=='*'){p++;}while(*p!='\0'){a[i++]=*p;p++;}a[i]='\0';}另一种解法,用指针void fun( char *a ){char *p=a;while (*p=='*') p++;for (;*p!='\0';p++,a++)*a=*p;*a='\0';}第12套参考答案1.程序填空题(1) t[][N] (2) i=0; i<N; (3) s2.程序改错题(1) int fun(…) (2) else if(m>a[mid])3.程序设计题void fun( char *a, char *p ){char *t=a;int i=0;for(; t<=p;t++)if(*t!='*')a[i++]=*t;for(;*t!=0;t++)a[i++]=*t;a[i]='\0';}另一种用指针void fun( char *a, char *p ){char *t=a;for(; t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!=0;t++)*(a++)=*t;*a='\0';}第13套参考答案1.程序填空题(1) sum=0; (2) t[i][i] (3) 12.程序改错题(1) double r; (2) while(fabs(n-m)>0.001)3.程序设计题void fun( char *a, char *h,char *p ){int i=0;char *q=a;while(q<h){ a[i]=*q; i++; q++; }while(q<=p){if(*q!='*'){a[i]=*q; i++;}q++;}while(*q){ a[i]=*q; i++; q++; }a[i]=0;}第14套参考答案1. 程序填空题(1)1 (2) j++ (3) j2. 程序改错题(1) t=a; a=b; b=t; (2) return b;3. 程序设计题void fun( char *a ){int i=0;char *p=a;while(*p){if(*p!='*')a[i++]=*p;p++;}a[i]=0;}另一种用for循环void fun( char *a ){int i, j=0;for(i=0; a[i]!=\0‟; i++){if(a[i]!='*')a[ij++]=a[i];}a[j]=0;}第15套参考答案1. 程序填空题(1)a[i]%2==0 (2) a[j] (3) j2. 程序改错题(1) int fun(int n) (2)if(n==1)3. 程序设计题void fun( char *a,int n ){int i=0, j=0;char *p=a, *q=a;while (*p)p++;p--;while(*p=='*'){i++;}if(i>n){while(*q && q<(p+n+1)){a[j++]=*q;q++;}a[j]=‟\0‟;}第16套参考答案1. 程序填空题(1)a[i] (2) a[j] (3) a[j]2. 程序改错题(1)去掉分号(2)case 1: case 2 : return 1;3. 程序设计题void fun(STREC *a){int i;double sum=0.0, average;for(i=0;i<N;i++)sum=sum+a->s[i];average=sum/N;a->ave=average;}第17套参考答案1. 程序填空题(1)a[] (2) 2 (3) i+12. 程序改错题(1)sum=0.0 (2)if((i+1) % 5==0)3. 程序设计题double fun( STREC *a, STREC *b, int *n ){double sum=0.0, ave;int i,j=0;for(i=0;i<N; i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s<ave)b[j++]=a[i]; //结构体整体赋值return ave;}第18套参考答案1. 程序填空题(1) 1 (2) i (3) a[p+i]2. 程序改错题(1)float k; (2)if(*a<*c)3. 程序设计题int fun( STREC *a, STREC *b ){int max, i,j=0;max=a[0].s;for(i=1; i<N; i++)if(a[i].s>max)max=a[i].s;for(i=0;i<N;i++)if(a[i].s==max)b[j++]=a[i];return j;}第19套参考答案1. 程序填空题(1)char (2) ch=‟9‟(3) …0‟2. 程序改错题(1) b[k]=*p (2)b[k++]= “”; 或者b[k]=”“; k++;3. 程序设计题double fun( STREC *h ){double sum=0, ave;STREC *p=h->next ;while(p!=NULL){sum=sum+p->s;p=p->next ;}ave=sum/N;return ave;}第20套参考答案1. 程序填空题(1) n/2 (2) i (3) a[n-1-i]2. 程序改错题(1) n=*-…0‟ (2) n=n*8+p-…0‟;3. 程序设计题STREC fun( STREC *a, char *b ){int i;STREC str={"\0",-1};for(i=0;i<16;i++)if(strcmp(a[i].num,b)==0)str=a[i];return str;}第21套参考答案1.程序填空题(1) 999 (2) t/10 (3) x2.程序改错题(1) void fun(long s, long *t) (2) while(s>0) 3.程序设计题void fun( STREC a[] ){int i, j, k;STREC t;for(i=0; i<N-1; i++){k=i;for (j=i+1;j<N;j++)if(a[j].s>a[k].s)k=j;if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t;}}}第22套参考答案1.程序填空题(1) 0 (2) x (3) t++2.程序改错题(1) int i, s1; (2) s[s1-i-1]3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+(a%10)*1+(b/10)*1000+(b%10)*10;}第23套参考答案1.程序填空题(1) 0 (2) x*10 (3) n/102.程序改错题(1) *t=0; (2) if(d%2==1)3.程序设计题void fun(char p1[], char p2[]){int i,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i+j]=p2[j];p1[i+j]='\0';}第24套参考答案1.程序填空题(1) 1 (2) s>0 (3) i*102.程序改错题(1)int fun(int n, int xx[][M]) (2) printf( "%d", xx[i][j] );3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*1+(b%10)*100;}第25套参考答案1.程序填空题(1) 0.0 (2) n (3) (t*t)2.程序改错题(1) for(i = 0; str[i]!='\0'; i++) (2) if(substr[k+1]=='\0')3.程序设计题double fun ( double eps){double s=1,p1=1,p2=1,t=1;int i=1;while(t>eps){p1=p1*i;p2=p2*(2*i+1);t=p1/p2;s=s+t;i++;}return 2*s;}第26套参考答案1.程序填空题(1) 10 (2) 0 (3) x2.程序改错题(1) if (n==0) (2) result=result*(n--); or result*=n--;3.程序设计题long fun ( char *p){long n=0;int flag=1, m;if(*p=='-'){p++; flag=-1;}else if (*p=='+'){p++;}while(*p!=0){m=*p-'0';n=n*10+m;p++;}n=flag*n;return n;}第27套参考答案1.程序填空题(1) (double)(2*k+1) or (double)3 (2)> (3)(t+1)2.程序改错题(1) double fun ( int n ) //教材没错,原题是void(2) s = s + (double)a / b;3.程序设计题int fun (int a[][M]){int i, j, max;max=a[0][0];for(i=0;i<2;i++){for(j=0;j<M;j++)if(a[i][j]>max)max=a[i][j];}return max;}第28套1.程序填空题(1) 1 (2) i*2 (3)-12.程序改错题(1) k++; //丢了分号(2) if(m==k)3.程序设计题void fun(int a[],int n, int *max, int *d){int i;*max=a[0]; *d=0;for(i=1;i<n;i++)if(a[i]>*max){ *max=a[i]; *d=i; }}第29套1.程序填空题(1) 0 (2) i++ ((2.0*i)*(2.0*i))2.程序改错题(1) void fun (char *s, char *t) (2) t[2*d] = '\0';3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0 && s[i]%2!=0)t[j++]=s[i];t[j]='\0';}第30套1.程序填空题(1) s[i] (2) k (3) 02.程序改错题(1) while ( *w ) //原题无* (2) if(*r==*p) 3.程序设计题void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;}第31套参考答案1.程序填空题(1) k (2) N (3) a[k][i]2.程序改错题(1) for(i=strlen(t)-1;i;i--) //教材正确(2) if(t[j]>t[j+1]) 3.程序设计题void fun(char *ss){int i,j,n;n=strlen(ss);for(i=0;i<n;i++)if(i%2==1 && ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第32套参考答案1.程序填空题(1) k (2) N-1 (3) temp2.程序改错题(1) void fun(int a[][M], int m) (2) a[j][k] = (k+1) * (j+1) ;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*10+(a%10)*1000+b/10+(b%10)*100;}第33套参考答案1.程序填空题(1) j (2) 0 (3) i++2.程序改错题(1) for(i = 2 ; i <= m ; i++) (2) y -= 1.0 /(i * i) ;3.程序设计题int fun(int score[],int m, int below[]){double sum=0.0, ave;int i,j=0;for(i=0;i<m;i++)sum=sum+score[i];ave=sum/m;for(i=0;i<m;i++)if(score[i]<ave)below[j++]=score[i];return j;}第34套参考答案1.程序填空题(1) t, s (2) s[i] (3) 02.程序改错题(1) if (i%k==0) (2) if (k==i)3.程序设计题void fun (int x, int pp[], int *n){int i,j=0;for(i=1;i<x;i++)if(x%i==0 && i%2==1)pp[j++]=i;*n=j;}第35套参考答案1.程序填空题(1) s (2) -- (3)return 02.程序改错题(1) double fun (int n) (2) s=s+(double)a/b;3.程序设计题void fun(int m,int k,int xx[]){int i, j;m=m+1;j=0;while(j<k){ for(i=2;i<m;i++)if(m%i==0)break;if(m==i)xx[j]=i; j++;}m++;}}另一种用for循环编写的void fun(int m,int k,int xx[]){int i, j, n;for(i=m+1,n=0; n<k;i++){ for(j=2;j<i;j++)if(i%j==0)break;if(i==j) xx[n++]=i;}}第36套参考答案1.程序填空题(1) n++ (2) 0 (3)s++2.程序改错题(1) t=t+s[k]; or t+=s[k] ; (2) *aver=ave;3.程序设计题int fun(int *s,int t,int *k){int i, max;max=s[0]; *k=0;for(i=1;i<t;i++)if(s[i]>max){ *k=i;max=s[i];}}第37套参考答案1.程序填空题(1) *s (2) s++ (3) n2.程序改错题(1) { //丢了函数的括号(2) if (x[j]>=xa) //不是=> 3.程序设计题float fun(int m, int n){float p1=1,p2=1, p3=1;float p;if(m<n){t=m;m=n;n=t;}for(i=1;i<=m;i++)p1=p1*i;for(j=1;j<=n;j++)p2=p2*j;for(k=1;k<=(m-n);k++)p3=p3*k;p=p1/(p2*p3);return p;}可以先建立一个求阶乘的函数,然后调用long jc(int m){long s=1;int i;for(i=1;i<=m;i++) s=s*i;return s;}float fun(int m, n){float p;p=1.0*jc(m)/jc(n)/jc(m-n);}第38套参考答案1.程序填空题(1) …0‟or 48 (2) s++ (3) sum2.程序改错题(1) if((k%13==0)||(k%17==0)) (2) }3.程序设计题double fun( int n){int i;double sum=0.0;for(i=0;i<n;i++)if(i%3==0 && i%7==0)sum=sum+i;sum=sqrt(sum);return sum;}第39套参考答案1.程序填空题(1) *s (2) 1 (3) k[n]2.程序改错题(1) double float fun(int k) (2) return s;3.程序设计题double fun(int n){double s=0.0, t;int i;for(i=1;i<=n;i++){t=1.0/(i*(i+1));s=s+t;}return s;}第40套参考答案1.程序填空题(1) i (2) ps[j] (3) tp2.程序改错题(1) double fun(int n) (2) return sum; 3.程序设计题double fun(double x, int n){double s=1.0,t=1.0, p=1.0;int i;for(i=1;i<=n;i++){t=t*x;p=p*i;s=s+t/p;}return s;}第41套参考答案1.程序填空题(1) double (2)f1 (3)f32.程序改错题(1) while(p!=NULL) (2) p=p->next3.程序设计题int fun(char *str){int n=0,i,flag=1;char *p=str;while(*p!='\0'){n++;p++;}for(i=0;i<n/2;i++){ if(str[i]==str[n-i-1]);else{flag=0;break;}}return flag;}第42套参考答案1.程序填空题(1) h->next (2) p->next (3)>2.程序改错题(1) p=h->next; (2) p=p->next;3.程序设计题void fun (int (*s)[10], int *b, int *n, int mm, int nn){int i,j,k=0;for(i=0;i<mm;i++)for(j=0;j<nn;j++)b[k++]=s[i][j];*n=k;}第43套参考答案1.程序填空题(1) NODE (2) next (3)r2.程序改错题(1) if(i%2 || s[i]%2==0) (2) t[j]='\0';3.程序设计题void fun (int (*s)[10], int *b, int *n,int mm, int nn){int i,j,k=0;for(i=0; i<nn;i++)for(j=0;j<mm;j++)b[k++]=s[j][i];*n=k;}第44套参考答案1.程序填空题(1) next (2) NULL (3) r2.程序改错题(1) r=t; (2) r=t;3.程序设计题void fun(char a[M][N],char *b){int i,j,k=0;for(i=0;i<M;i++)for(j=0; a[i][j]!='\0'; j++)b[k++]=a[i][j];b[k]='\0';}第45套参考答案1.程序填空题(1) p->next (2) q (3)p->next2.程序改错题(1) while(*s!= '\0') (2) s++;3.程序设计题void fun(int *w, int p, int n){int i,j,t;for(i=0;i<=p;i++){t=w[0];for(j=0;j<n-1;j++)w[j]=w[j+1];w[j]=t;}第46套参考答案1.程序填空题(1)double (2)f1 (2) f22.程序改错题(1)char* fun(char *s, *t) (2) ss++ (3) tt++3.程序设计题void fun (char *w,int m){int i,j,n;char ch;n=strlen(w);for(i=0;i<3;i++){ch=w[0];for(j=1;j<n;j++)w[j-1]=w[j];w[j-1]=ch;}}第47套参考答案1.程序填空题(1) x (2) p (3) s2.程序改错题(1) long k=1; (2) num/=10;3.程序设计题float fun ( float *a , int n ){int i;float ave=0;for(i=0;i<n;i++)ave=ave+a[i];ave=ave/n;return ave;}第48套参考答案1.程序填空题(1) FILE * (2) fp (3) ch2.程序改错题(1) s[j++]=s[i]; (2) s[j]='\0';3.程序设计题void fun(char (*s)[N],char *b){int i,j,k=0;for(i=0;i<N;i++)for(j=0;j<M;j++)b[k++]=s[j][i];b[k]='\0';}第49套参考答案1.程序填空题(1) N (2) k (3) ss[i]2.程序改错题(1) int k=0; (2) while(*p || *q)3.程序设计题#include <stdio.h>void fun( char *a ){int i=0;char *p=a;while(*p && *p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';}第50套参考答案1.程序填空题(1) fw (2) str (3) str2.程序改错题(1) void fun (long s, long *t) (2) sl = sl*10;3.程序设计题int fun( STREC *a, STREC *b ){int i,n=0;*b=a[0];for(i=1;i<N;i++)if(a[i].s<b->s)*b=a[i];for(i=0;i<N;i++)if(a[i].s==b->s){b[n]=a[i];n++;}return n;}第51套参考答案1.程序填空题(1) k (2) len (3)ss[i][j]2.程序改错题(1) result*=n—…(2) return result;3.程序设计题void fun( char s[],int c){int j=0,n;char *p=s;while(*p!='\0'){ if(*p!=c)s[j++]=*p;p++;}s[j]='\0';}第52套参考答案1.程序填空题(1) x (2) n (3) t2.程序改错题(1) d=1; (2) s=0; (3) d=d/10;3.程序设计题double fun(double x[9]){int i;double s=0.0,t;for(i=0;i<8;i++){t=sqrt((x[i]+x[i+1])/2);s=s+t;}return s;}第53套参考答案1.程序填空题(1) STU (2) std[i].num (3) std[i]2.程序改错题(1) if(*r==*p) {r++; p++;} (2) if(*r==‟\0‟)3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i] % 2==1)t[j++]=s[i];t[j]=0;}第54套参考答案1.程序填空题(1) std[i].year (2) std[i] (3) n2.程序改错题(1) IsPrime(int n) (2) if(!(n%i))3.程序设计题fun(STU a[], STU *s){int i;*s=a[0];for(i=1;i<N;i++)if(a[i].s>s->s)*s=a[i];}第55套参考答案1.程序填空题(1) STU (2) score[i] (3) &std2.程序改错题(1) if(k>1)3.程序设计题void fun(int a[ ][N], int n){int i,j;for(i=0;i<N;i++)for(j=0;j<i;j++)a[i][j]=a[i][j]*n;}第56套参考答案1.程序填空题(1) std[] (2) PERSON (3) std2.程序改错题(1) int k, q, i; (2) pt[i]=str[k][i];3.程序设计题void fun (int a[][N]){int i,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;}第57套参考答案1.程序填空题(1) std[0] (2) std[i].age (3) 2.程序改错题(1) void fun(int *a, int *b) (2) t=*b;*b=*a;*a=t;3.程序设计题void fun(int tt[M][N],int pp[N]){int i,j,max;for(i=0;i<N;i++){max=tt[0][i];for(j=0;j<M;j++)if(tt[j][i]>max)max=tt[j][i];pp[i]=max;}pp[i]=0;}第58套参考答案1.程序填空题(1) a[i] (2) m%10 (3) m/102.程序改错题(1) b[i] = a[i][0]; (2) for (j=1; j<N; j++) (3) if ( b[i] > a[i][j] ) 3.程序设计题double fun(double a[ ] , int n){int i,j;double min,max,sum;min=max=a[0];sum=a[0];for(i=1;i<n;i++){sum=sum+a[i];if(a[i]>max) max=a[i];if(a[i]<min) min=a[i];}sum=sum-max-min;return sum/(n-2);}第59套参考答案1.程序填空题(1) i+1 (2) k=j (3) t2.程序改错题(1) void fun(char *str, char ch ) (2) if ( *str != ch ) (3) str[1] = '\0';3.程序设计题void fun(char*s){int i,n;char t;n=strlen(s);for(i=0;i<n/2;i++){t=s[i];s[i]=s[n-i-1];s[n-i-1]=t;}}第60套参考答案1.程序填空题(1) *n (2) next (3) head2.程序改错题(1) a=NULL; (2) if(*r==*p)3.程序设计题void fun(int a, int b, long *c){*c=(a%10)*1000+(a/10)*10+b%10+(b/10)*100;}第61套参考答案1.程序填空题(1) ss[i] (2) j+n (3) 12.程序改错题(1) if (*p==' ') (2) *(p-1)=toupper( *(p-1));3.程序设计题void fun(char *s,int num){int i,j,k;char *p=s;char ch;for(i=1;i<num-1;i++){ch=p[i];k=i;for(j=i+1;j<num-1;j++)if(p[j]>p[k])k=j;p[i]=p[k];p[k]=ch;}第62套参考答案1.程序填空题(1) [N] (2)len (3) *n=len2.程序改错题(1) t+=1.0/i; (2) return t;3.程序设计题int fun(char *str, char *substr){char *r,*p;int n=0;while(*str){p=str;r=substr;while(*r){ if(*p==*r) {p++; r++;}elsebreak;}if(*r=='\0') n++;str++;}return n;}另一种解法int fun(char *str, char *substr){int i, j=0;for(i=0;str[i+1]!=‟\0‟;i++)if(str[i]==substr[0] && str[i+1]==substr[1]) j++;return j;}第63套参考答案1.程序填空题(1) && (2) …A‟(3) ch2.程序改错题(1) void fun(int a[]) //答案是void fun(int *a) (2) a[j]=a[j-1];3.程序设计题int fun(int n){int i,j,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;return s;}第64套参考答案1.程序填空题(1)1.0 (2) -1 (3)t2.程序改错题(1) for(i=1;i<=3;i++) (2) if(k>=0 && k<=6)3.程序设计题double fun(int n){int i,p=1;double s=1.0,t=1.0;for(i=1;i<=n;i++){p=p*i;t=1.0/p;s=s+t;}return s;}第65套参考答案1.程序填空题(1)x (2)n (3)fabs(t)2.程序改错题(1) for(i=1;i<=y;i++) (2) t=t%1000;3.程序设计题double fun(double x){double s=1.0,t;int n=1;t=0.5*x;s=s+t;do{n++;t*=(0.5-n+1)*x/n;s=s+t;}while(fabs(t)>=1e-6);return s;}第66套参考答案1.程序填空题(1) 1.0 (2) 1 (3) i2.程序改错题(1) k=i; (2) b=k%10;3.程序设计题double fun(double x[10]){int i;double s=0.0, ave;for(i=0;i<10;i++)s=s+x[i];ave=s/10;s=0.0;for(i=0;i<10;i++)s=s+pow((x[i]-ave),2); //平方等于两个相乘,0.5次方等于开平方s=s/10;s=pow(s,0.5);return s;}第67套参考答案1.程序填空题(1) tt (2) tt.score[i] (3) std2.程序改错题(1) void fun(int *a,int n) //去掉分号(2) m=i;3.程序设计题unsigned fun(unsigned w){unsigned i;int s=1,sum=0,t;do{t=w%10;t=t*s;sum=sum+t;s=s*10;w=w/10;}while(w>=10);return sum;} //另一种思路是求w的位数,对n-1位取余数第68套参考答案1.程序填空题(1)q (2) next (3) next2.程序改错题(1) p=j; (2) p=i;3.程序设计题void fun ( int m, int *a , int *n ){int i,j=0;for(i=1;i<=m;i++)if((i%7==0)||(i%11==0))a[j++]=i;*n=j;}第69套参考答案1.程序填空题(1) N (2) i (3) -12.程序改错题(1) a2=k/10; (2)return i;3.程序设计题void fun( char *a ){char *p;int i=0,j=0;p=a;while(*p){i++;p++;}p--;while(*p=='*'){ p--;j++;}a[i-j]=0;}第70套参考答案1.程序填空题(1) next (2) t->data (3) t2.程序改错题(1) void fun (char *a) //丢* (2) printf("%c", *a) ; //丢,3.程序设计题char *fun ( char *s, char *t){int i,j;for(i=0;s[i]!='\0';i++);for(j=0;t[j]!='\0';j++);if(i>=j) return s;else return t;}第71套参考答案1.程序填空题(1) “r”(2) fs (3) ft2.程序改错题(1) if (d%2==0) (2) s /= 10;3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=0;s[i]!='\0';i++)if((i%2==0) &&(s[i]%2==0))t[j++]=s[i];t[j]='\0';}第72套参考答案1.程序填空题(1) a (2) (3) score[i]2.程序改错题(1) s[j++]=s[i]; (2) s[j]=0;3.程序设计题void fun( char *a ){int i,j,n=0;char t;char*p=a;for(i=0;p[i]!='\0';i++)n++;while(*p=='*'){t=p[0];for(i=1;i<n;i++)p[i-1]=p[i];p[i-1]=t;}}另一种思路void fun( char *a ){int i=0,n=0;char*p=a;while(*p=='*'){ n++; p++;} //统计*的个数while(*p){ a[i]=*p ; i++ ; p++} //将前导*后的字符传递给awhile(n!=0) //后面补*{a[i]=‟*‟;i++;n--;}a[i]=‟\0‟}第73套参考答案1.程序填空题(1) N (2) substr (3) 02.程序改错题(1) fun(int x, int y, int z ) (2) return j;3.程序设计题void fun( char *a, int n,int h,int e ){char *p;int i;for(i=0;i<(n-h-e);i++)a[i]=a[h+i];a[i]='\0';}第74套参考答案1.程序填空题(1) data (2) next (3) head2.程序改错题(1) while ( *r ) (2) *a = *r; a++; r++; //r++丢分号3.程序设计题void fun(char *s, char t[]){int i,j=0;for(i=1;s[i]!='\0';i+=2)t[j++]=s[i];t[j]=0;} //可以先求一下字符串的长度strlen第75套参考答案1.程序填空题(1) struct student (2) n-1 (3) a[i].name, a[j].name2.程序改错题(1) q=p+i; (2) while(q>p )3.程序设计题int fun( STREC *a,STREC *b,int l, int h ){int i,j=0;for(i=0;i<N;i++)if(a[i].s>=l && a[i].s<=h)b[j++]=a[i];return j;}第76套参考答案1.程序填空题(1) b->sno (2) ->name (3) &t2.程序改错题(1) double fun(double a, double x0) (2) if( fabs(x1-x0)>=0.00001 ) 3.程序设计题double fun( STREC *a, STREC *b, int *n ){int i,j=0;double ave,sum=0.0;for(i=0;i<N;i++)sum=sum+a[i].s;ave=sum/N;for(i=0;i<N;i++)if(a[i].s>=ave)b[j++]=a[i];*n=j;return ave;}第77套参考答案1.程序填空题(1) STYPE (2)FILE (3) fp2.程序改错题(1) for( i=0; i<sl; i++) (2) t[s1*2] = '\0';3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*1000+(a%10)*10+(b/10)*100+b%10;}第78套参考答案1.程序填空题(1) fp (2) == (3) fp2.程序改错题(1) n=strlen(aa); (2) ch=aa[i];3.程序设计题double fun( STREC *h ){STREC *p=h->next;double max=p->s;while(p!=NULL){if(p->s>max)max=p->s;p=p->next;}return max;}第79套参考答案1.程序填空题(有问题)2.程序改错题(有问题)3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*1000+(b%10)*10;}第80套参考答案1.程序填空题(1) FILE * (2) fclose(fp) (3) fp2.程序改错题(1) t=calloc(m,sizeof(STU)); (2) t[k]=b[j];3.程序设计题int fun(int a[], int n){int i, j=1;for(i=1;i<n;i++)if(a[i-1]!=a[i])a[j++]=a[i];return j;}第81套参考答案1.程序填空题(1) [M] (2) N (3) 02.程序改错题(1) t=1.0; (2) return (2*s)3.程序设计题void fun( char *a, int n ){char *p=a;char *q=a;int i=0,j=0;while(*p=='*'){p++; i++;}if(i>n){while(*q){a[j++]=*(q+i-n); q++;}a[j]='\0';}}第82套参考答案1.程序填空题(1) fp (2) fclose(fp) (3) fname2.程序改错题(1) for ( i=j+1; i<n ; i++ ) (2) p=i;3.程序设计题void fun(int a, int b, long *c){*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;}第83套参考答案1.程序填空题(1) NULL (2)n (3) head, ch2.程序改错题(1) for (i = 0,t = 0; p[i] ; i++) (2) c[t]='\0';3.程序设计题void fun ( char *ss ){int i;for(i=1;ss[i]!='\0';i+=2)if(ss[i]>='a' && ss[i]<='z')ss[i]=ss[i]-32;}第84套参考答案1.程序填空题(1) struct student * (2) a->score[i] (3) a2.程序改错题(1) char *fun(char (*sq)[M]) (2) return sp;3.程序设计题void fun(int a, int b, long *c){*c=(a/10)*100+a%10+(b/10)*10+(b%10)*1000;}第85套参考答案1.程序填空题(1) 0 (2) && (3) 12.程序改错题(1) t=t-1.0/i; (2) return t;3.程序设计题void fun (char *str){char *p=str;int i=0;while(*p!='\0'){ if(*p!=' ')str[i++]=*p;p++;}str[i]='\0';}第86套参考答案1.程序填空题(1) j=2 (2) i (3)j2.程序改错题(1)j=0 (2) if(sum%4==2)3.程序设计题double fun(int n){int i;double s=0,t=0;for(i=1;i<=n;i++){t=1.0/(2*i-1)-1.0/(2*i);s=s+t;}return s;第87套参考答案1.程序填空题(1) 0 (2) t (3) i+t2.程序改错题(1) b[i] = 0; (2) b[a[i] - 'a']++; (3) if (b[max] < b[i]) 3.程序设计题(答案评分有问题)long fun( char *s ){int n, i, j;long m=0;n=strlen(s);for(j=0;j<n;j++){i=s[j]-48;m=m*10+i;}return m;}另一种解法int i,sum=0,len;len=strlen(s);for(i=0;i<len;i++){sum=sum*10+*s-48;s++;}return sum;第88套参考答案1.程序填空题(1) “r”(2) > (3) fwrite2.程序改错题(1) p=s (2) while(*p++);3.程序设计题void fun(int *a, int *b){int i,j;for(i=0;i<M;i++)b[i]=0;for(i=0;i<N; i++){j=a[i]/10;if(j>=0 && j<=9)b[j]++;elseb[10]++;}}第89套参考答案1.程序填空题(1) b[k] (2) N/2 (3) <2.程序改错题(1) int t[N] ,i, num=0; (2) t[num++]=b[i]; (3) for(i=0; i<num; i++) 3.程序设计题int fun(char *s){int n=0;while(*s){if(*s>='0' && *s<='9')n++;s++;}return n;}第90套参考答案1.程序填空题(1) j (2) k (3) p2.程序改错题(1) while ( i < j ) (2) if ( *a )3.程序设计题void fun(char *s, char t[]){int len,i,j=0;len=strlen(s);for(i=0;i<len;i++)if(i%2==0 && s[i]%2==1);elset[j++]=s[i];t[j]=0;}第91套参考答案1.程序填空题(1) i%5 (2)\n (3) a[i]2.程序改错题(1) return t; (2) for(i=0;i<N;i++) t[i]=x[i]; (3) x[i+1]=findmid(a,b,c);3.程序设计题int fun( int *s, int x){int i;for(i=0;i<N;i++)if(s[i]==x)break;if(i==15)return -1;elsereturn i;}第92套参考答案1.程序填空题(1) pb (2) p->data (3) p->next2.程序改错题int i, one=0, zero=0 ; (2) switch( s[i] ) (3) case 0 : zero++; break;3.程序设计题void fun( char *a , char *s){while(*s){*a=*s;a++;s++;}*a=0;}第93套参考答案1.程序填空题(1) [N] (2) i (3) i+12.程序改错题(1) void fun(int m,int k) //去掉分号(2) aa[i]=m%k; (3) printf("%d",aa[i-1]);3.程序设计题char *fun(char (*a)[81], int num, char *max){int i,len,m;max=a[0];for(i=0;i<num;i++){if(strlen(max)<strlen(a[i]))max=a[i];}return max;}第94套参考答案1.程序填空题(1) a[0][i] (2) < (3) x, y2.程序改错题(1) void fun(int *x,int *y) (2) t=*x;*x=*y;*y=t;3.程序设计题int fun(int lim, int aa[MAX]){int i,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0) break;。

国家二级(C语言)机试模拟试卷80(题后含答案及解析)_0

国家二级(C语言)机试模拟试卷80(题后含答案及解析)_0

国家二级(C语言)机试模拟试卷80(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.请补充main函数,该函数的功能是:计算三名学生学科的平均成绩。

例如,当score[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90,95,86,95,97}时,五门学科的平均分为:84.5 89.5 85.3 86.3 86.3。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:# include<stdio, h>#define N 3 #define M 5 main ( ) { int i,j; static float score [N] [M]= { {83.5, 82,86, 65,67}, {80,91.5,84,99,95}, {90, 95, 86, 95, 97} }; static float bb[N]; clrscr ( ); for ( i=0; i<M; i++) bb[i]=0.0; for(i=0;i<【】;i++) { for(j=0;j<【】;j++)bb [j]+=score [i] [j]; } for (i=0; i<M; i++) print f (“ \nsubject%d\taverage=%5.1 f”, i+1,【】); return 0; }正确答案:NMbb[i]/N解析:第一空:由循环体中的score[i][j]可以推断出,变量i的取值范围是从0到N-1。

第二空:由循环体中的score[i][j]也可以推断出,变量j的取值范围是从0到M-1。

第三空:各科的平均分等于各科的总分除以学生人数,此时数组bb中保存的是各科的总分,所以要除以N得到各科的平均分。

程序修改题(30分)2.下列给定程序中,函数fun( )的功能是::求k!(k<13),所有阶乘的值作为函数值返回。

国家二级C语言90套题

国家二级C语言90套题

填空:程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。

函数fun的功能是输出这位学生的信息。

请在程序的下划线处填入正确的内容并把下划线的内容并把下划线删除,使程序得出正确的结果。

1、tt2、tt.score[i]3、std改错:给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

m=0改为m=i k=m改为m=k编程:请编写一个函数unsigned fun (unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。

{if(w>10000) w %= 10000 ;else if(w>1000) w %= 1000 ;else if(w>100) w %= 100 ;else if(w>10) w %=10 ;return w ;}第二套填空:给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。

Ss所指字符串数组中共有M个字符串,且串长<N。

1、i+12、k=j3、t改错:Fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

1、str 前加个*2、==改为!=3、‘0’改为‟\0‟编程:请编一个函数fun (char *s),函数的功能是把s所指字符串中的内容逆置。

{char b[N] ;int i = 0, j ;for(j = strlen(s) - 1 ; j >= 0 ; j--)b[i++] = s[j] ;b[i]=0;strcpy(s, b) ;}第三套填空:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其怀最长的字符串等长。

字符串数组中共有M个字符串,且串长<N。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.程序填空题在给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。

当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>double f1(double x){ return x*x; }double f2(double x, double y){ return x*y; }/**********found**********/___1___fun(int I, double x, double y){if(i==1)/**********found**********/___2___;else/**********found**********/___3___;}main(){double x1=5, x2=3, r;r=fun(1, x1, x2);r+=fun(2, x1, x2);printf("x1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r); }2.程序修改题在给定程序中,函数fun()的功能是:将没有在字符串s 中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。

例如,当s=“12345”,t=“24677”时,u中的字符串为“677”。

请改正程序中的错误,使其能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <string.h>void fun(char *s, char *t, char *u){int I,j,sl,tl;sl=strlen(s); tl=strlen(t);/**********found**********/for(i=0,i<t1,i++){for(j=0; j<sl; j++)if(t[i]==s[j]) break;if(j>=sl) *u++=t[i];}/**********found**********/*u='0';}main(){char s[100], t[100], u[100];printf("\nPlease enter string s:");scanf("%s", s);printf("\nPlease enter string t:");scanf("%s", t);fun(s, t, u);printf("The result is: %s\n", u);}3.程序设计题请编写函数fun(),函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,字符串数组中的M个字符串为:AAAABBBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBBCC。

注意:部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include <stdio.h>#define M 3#define N 20void fun(char a[M][N], char *b){}main(){char w[M][N]={"AAAA","BBBBBBBB","CC"},a[100];int I ;printf("The string:\n");for(i=0; i<M; i++) puts(w[i]);printf("\n");fun(w,a);printf("The A string:\n");printf("%s",a); printf("\n\n");}1答案:1、(1)double(2)return f1(x)(3)return f2(x, y) 2、(1)将for(i=0;i<t1;i++) 改为:for(i=0;i<tl;i++)(2)将*u='0' 改为:*u='\0'3、void fun(char a[M][N],char *b){int i;*b=0;for(i=0; i<M; i++)strcat(b,a[i]);}1.程序填空题给定程序中,函数fun()的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>void fun(char *s,int a,double f){/**********found**********/___1___*fp;char ch;fp=fopen("file1.txt","w");fprintf(fp, "%s %d %f\n",s,a,f);fclose(fp);fp=fopen("file1.txt","r");printf("The result :\n\n");ch=fgetc(fp);/**********found**********/while(___2___){ putchar(ch); ch=fgetc(fp); }putchar('\n');fclose(fp);}main(){char a[10]="Hello!";int b=12345;double c=98.76;fun(a,b,c);}2.程序修改题下列给定程序中,fun函数的功能是:根据形参n,计算如下公式的值。

请改正程序中的错误,使其能得到正确的结果。

注意:不要改动main函数,不能增行或删行,也不得更改程序的结构。

#include <conio.h>#include <stdio.h>double fun(int n){double s=1.0;int I;/******found**********/for(i=2;i<=n;i++)s+=1.0/k;/******found**********/________}main(){int n;printf("\nplease enter 1 integer numbers:\n");scanf("%d",&n);printf("\n\nthe result is %lf\n",fun(n));}3.程序设计题请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。

注意:部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。

#include <stdio.h>#include <ctype.h>#include <conio.h>#include <string.h>void fun(char *str,int n){}main(){char str[10];FILE *out;printf("input string with seven characters:");gets(str);fun(str,7);printf("\n%s",str);out=fopen("outfile.dat","w");strcpy(str,"Justsdf");fprintf(out,"%s",str);fclose(out);}答案:1、(1)FILE (2)!feof(fp)2、(1)将s+=1.0/k;改为:s+=1.0/i;(2)return s;3、char t;2int i,j;for(i=1;i<n-2;i++)for(j=i+1;j<n-1;j++)if(str[i]<str[j]){t=str[i];str[i]=str[j];str[j]=t;}1.程序填空题在给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为wfile4.txt的文本文件中,然后再顺序读出显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!#include <math.h>#include <stdio.h>int fun(char *fname ){FILE *fp;int I,n; float x;if((fp=fopen(fname, "w"))==NULL) return 0;for(i=1; i<=10; i++)/**********found**********/fprintf(___1___);printf("Succeed!!\n");/**********found**********/___2___;printf("The data in file :\n");if((fp=fopen(fname,"r"))==NULL)return 0;fscanf(fp,"%d%f",&n,&x);while(!feof(fp)){printf("%d %f\n",n,x);fscanf(fp,"%d%f",&n,&x);}fclose(fp);return 1;}main(){char fname[]="wfile4.txt";fun(fname);}2.程序修改题在给定程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。

相关文档
最新文档