南开C语言100题

合集下载

南开C语言100题附带答案

南开C语言100题附带答案

1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。

请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。

例如:若输入17,5,则应输出:19,23,29,31,37。

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

请勿改动主函数main()和函数readwriteDAT()的内容。

---------类型:素数。

void num(int m,int k,int xx[]) /*标准答案*/ {int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;} }或者:void num(int m,int k,int xx[]){int i,j,s=0;for(i=m+1;k>0;i++){for(j=2;j<i;j++)if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/if(i==j){xx[s++]=i;k--;}} }或者:void num(int m, int k, int xx[]){ int i=0;for(m=m+1;k>0;m++)if(isP(m)){ xx[i++]=m;k--; } }原程序如下:#include <conio.h>#include <stdio.h>void readwriteDAT() ;int isP(int m){ int i ;for(i = 2 ; i < m ; i++)if(m % i == 0) return 0 ;return 1 ;}void num(int m,int k,int xx[]){} main(){ int m, n, xx[1000] ;clrscr() ;printf("\nPlease enter two integers:") ; scanf("%d,%d", &m, &n ) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++)printf("%d ", xx[m]) ;printf("\n") ;readwriteDAT() ;system("pause");}void readwriteDAT(){ int m, n, xx[1000], i ;FILE *rf, *wf ;rf = fopen("in.dat", "r") ;wf = fopen("out.dat", "w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d %d", &m, &n) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++) fprintf(wf, "%d ",xx[m]) ;fprintf(wf, "\n") ;}fclose(rf) ;fclose(wf) ;}2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。

南开100题 二级C语言上机考试题库,共有100套题目

南开100题 二级C语言上机考试题库,共有100套题目

二级C语言上机考试题库,共有100套题目(前面为填空题题目,后面同序号依次为此套题的填空题、改错题、编程题答案)1、给定程序中,函数f un的功能是根据形参i的值返回某个函数的值。

当调用正确时, 程序输出:x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

1、(1)double(2)f1(3)f21、(1)char *f un(char *s,char *t)(2)ss++;(3)tt++;1、void f un(char *w, int m){char a[N];int i;f or(i=0;i<m;i++) a[i]=w[i];while(w[i]) { w[i-m]=w[i]; i++;}i--;m--;f or(;m>=0;m--,i--) w[i]=a[m];}2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。

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

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

2、(1)struct student(2)n-1(3)a[i].name,a[j].nam e2、(1)q=p+i;(2)while(q>p)2.int f un( STREC *a,STREC *b,int l, int h ){int i,j=0;f or(i=0;i<N;i++){if(a[i].s>=l && a[i].s<=h){b[j]=a[i];j++;}}return j;}3、给定程序中,函数f un的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

100个经典C语言程序(南开一百题)

100个经典C语言程序(南开一百题)
main()
{
int i,j,result;
printf("\n");
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
printf(" ");
printf("\n");
}
}
==============================================================
【程序10】 (传说中的南开一百题)
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
2.程序源代码:
main() { l Nhomakorabeang int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
作者: tao2320 2006-3-15 23:35 回复此发言

奥鹏南开c语言程序设计考试题及答案

奥鹏南开c语言程序设计考试题及答案

奥鹏南开c语言程序设计考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. integerC. floatD. real答案:A2. 在C语言中,哪个函数用于将字符串连接起来?A. strcatB. strjoinC. strcatenateD. strappend答案:A3. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A4. 下列哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释5. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B6. C语言中,哪个函数用于将整数转换为字符串?A. itoaB. atoiC. sprintfD. strcpy答案:A7. 下列哪个选项是C语言中正确的文件打开模式?A. "r"B. "w"C. "a"D. "b"答案:A8. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. defineD. void答案:D9. C语言中,哪个函数用于计算字符串的长度?B. strlengthC. stringlengthD. length答案:A10. 下列哪个选项是C语言中正确的数组定义方式?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr = {1, 2, 3};答案:A二、填空题(每题2分,共20分)1. C语言中,字符型数据在内存中以______形式存储。

答案:ASCII码2. 在C语言中,______关键字用于定义一个指针。

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语言经典程序100题(完整版)

C语言经典程序100题(完整版)

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

#include "stdio.h"#include "conio.h"main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}getch();}==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

#include "stdio.h"#include "conio.h"main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0. 1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

全国计算机考试二级C语言南开100题答案(Word版)

全国计算机考试二级C语言南开100题答案(Word版)

全国计算机考试二级C语言南开100题答案(Word版)1、B:STYPE FILE fp M:for(i = 0 ; i < sl ; i++) t[2*sl] = 0; P: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2、B: *fw str str M: long *t sl = sl*10; P: *c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);3、B: fp fclose(fp) fname M: i<n p=i P: *c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);4、B: “r”ft fs M:(d%2==0) s /= 10; P: *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);5、B: x p s M:long k=1; num/=10 ;P: int i; float ave=0.0; for(i=0; i<n; i++) ave=ave+a[i] ; ave=ave/n; return ave;6、B: next t->data t M:fun (char *a) printf("%c", *a) ; P: int i; char *p=s, *q=t; for(i=0;*p && *q; i++) {p++; q++; } if(*p == 0 && *q == 0) return s ; if(*p) return s ; else return t ;7、B: q next next M: p = j; p=i; P: int i ; *n=0 ; for(i=7 ; i<=m; i++) if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ;8、B: NULL n head,ch M: for c[t]='\0'; P: int i ; for(i = 1 ; i < strlen(*ss) ; i+=2) { if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ;9、B: *n next head M: a = NULL; *r == *p P: int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i += 2) if(s[i] % 2 == 0) t[j++] = s[i] ; t[j] = 0 ;10、B: data next head M: *r r++; P: int i, j = 0 ; for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ;11、B: STU std[i].num std[i] M: p++; *r==‟\0‟ ;P: int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ;12、B: std[i].year std[i] n M:分号去掉if (!( n%i ))P: int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(max < a[i].s) { j = i ; max = a[i].s ; } *s = a[j] ;13、B: STU score[i] &std M:( ) k= =0 P: int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ;14、B: *std PERSON std M:int str[k][i] P: int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] =0;15、B: *std std[i].age M: int *b t = *b; *b = *a ; *a = t; P: int i,j, min, k ; for(i= 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) { min=tt[j][i] ; k = j ; } pp[i] = tt[k][i] ; }16、B: tt tt.score[i]std M: m=i m=kP: 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 ;17、B: i+1 k=j t M: char *str != 0P: 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) ;18、B: k len ss[i][j] M:n-- result P: char *p = s ; int i = 0 ; while(*p) { if(*p != c) s[i++] = *p ; p++ ; } s[i] = 0 ;19、B:ss[i] n+j 1 M: *p ; P: char ch ; int i, j ; for(i = 1 ; i < 6 ; i++)for(j = i + 1 ; j < 6 ; j++) { if(*(s + i) < *(s + j)) { ch = *(s + j) ; *(s + j) = *(s +i) ; *(s + i) = ch ; } }20、B: [N] len *n=len M:t += 1.0/i; return t; P: int cnt = 0 ; char *p = str, *q ;while(*p) {q = strstr(p, substr) ; if(q == NULL) break; p = q + strlen(substr) ; cnt++ ; } return cnt ;strstr:在前串中找出后串第一次出现的位置,若找到返回地址否则返回NULL21、B: M < k M: && tt[i] -= 32;P: int i,j;*k=0;for(i=2;i<m;i++){for(j=2;j<=i/2;j++)if(i%j==0) break; if(j<=i/2) {xx[*k]=i;(*k)++;}}22、B: j++ s[i]=t1[i] j M:; ; *(pstr + j) P: int cnt = 0 ; char *p = ss ; while(*p) { if(*p == c) cnt++ ; p++ ;}23、B: && 0 s[j] M: <= 1.0P: int c[3][3] ; int i, j ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) { c[i][j] = a[j][i] ;b[i][j] = a[i][j] + c[i][j] ; }24、B: s[i] …9‟*t=n;M: t = *x ; *x = y ; return(t) ;P: int i ; *n = 0 ; for(i = 7 ; i < 1000 ; i++) if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ;25、B: n-1 s[k] c M:t=0 t=t/10P: char *p = tt ; int i ; for(i = 0 ; i < 26 ; i++) pp[i] = 0 ; while(*p) { if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ; }26、B: t=i; i 0 M:(fabs(t)) s/n P: strncpy(b, a, n) ; b[n] = 0 ; strcat(b, a + n + 1) ;27、B: 0 0 c M:double/= P: int i,j,t; float s=0; for(i=1;i<=n;i++) { t+=j;s=s+1./t; } return s;28、B:i++ m m M:) ; P: float x0, x1=0.0; do{ x0=x1; x1=cos(x0); } while(fabs(x0-x1)>0.000001); return x1;29、B: N N-1 0 M: s=s+(n+1.)/n; return t; P: int f0 = 0, f1 = 1, f ; do { f = f0 + f1 ; f0 = f1 ; f1 = f ; } while(f < t) ; return f ;30、B: 0 j-- j M: double ; P: double s = 0.0 ; int i ; for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ; return s ;31、B: [N] t[i][j] t[j][i] M: ((m)/(n)) return (value);P: int j=0; char *p = a ; while(*p == '*') p++ ; while(*p) a[j++] = *p++; a[j]=0 ;32、B: t[ ][N]i=0;i<n; s M: fun(int a[],int m) ifP: char *q=a; int j=0; while(*q && q<p) { if(*q != '*') a[j++] = *q ;q++ ; } while(*p) a[j++]=*p++; a[j]=0;33、B: sum=0; t[i][i] 1M:double r; > P: int j=0; char *q=a; while(*q && q < h) a[j++]= *q++ ;while(*h&&*p &&h < p) { if(*h != '*') a[j++] = *h ; h++; } while(*p) a[j++] = *p++ ; a[j] = 0 ;34、B: 1 j++ j M:t=b; return (b); P: int j =0 ; char *p=a; while(*p) {if(*p != '*') a[j++]=*p ; p++ ; } a[j]=0;35、B: a[i]%2 a[j] j M:int n n==1P: char *p=a ; int j=0; while(*p) p++; p--; while(*p == '*') p--; p++; while(j<n && *p) { p++ ; j++; } *p = 0 ;36、B: a[i] a[j] a[j]M:分号去掉case 1;分号改冒号P: int i ; for(i =0 ; i < N ; i++) a->ave += a->s[i] ; a->ave /= N ;37、B: *a 2 i+1M:sum=0.0; if((i+1)%5==0) P: int i ; double ave = 0.0 ; *n = 0 ; for(i = 0 ; i < N ; i++) ave = ave + a[i].s ; ave /= N ;for(i = 0 ; i < N ; i++) if(a[i].s < ave) { b[*n]=a[i] ; (*n)++; } return ave ;38、B: 1 i a[p+i] M:k <P: int i, max = a[0].s, n=0; 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;39、B: n/2 i a[n-1-i] M:*P→*p …o‟→…0‟P: STREC c ; int i ; c.num[0] = '\0' ;c.s = -1 ;for(i = 0 ; i < N ; i++) if(strcmp(a[i].num, b)==0) { strcpy(c.num, a[i].num);c.s=a[i].s;break ; } return c ;40、B: char ch<='9' …0‟M:*p ……(空格字符)P: STREC *p=h->next; double av=0.0; int n = 0 ;while(p!=NULL) {av+= p->s ; p=p->next; n++; } return (av / n) ;41、B: && 'A' ch M: int *a a[j]=a[j-1]; P: int s = 0, i ; for(i = 2 ; i < n ; i++) if(n % i == 0) s +=i ; return s ;42、B: 1 -1 t M: for(i=1; i<=3; i++) k>=0 && k<=6(K变小写)P: double s=1 ; long t=1; int i; for(i=1; i<=n; i++) { t=t*i; s+=1./t; } return s;43、B: x n fabs(t) M: <= %P: int n=1; double sn=1, xn=1; while(fabs(xn)>=0.000001) { xn=xn*x*(0.5-n+1)/n; n+=1;sn+=xn; } return(sn);44、B: 1 1 i M:k=i; c=k%10; P: int i; double avg=0.0, sum=0.0, abs=0.0, fc; for(i=0;i<10;i++) sum+=x[i]; avg=sum/10; for (i=0;i<10;i++) abs+=(x[i]-avg)*(x[i]-avg); fc=sqrt(abs/10) ; return fc;45、B: x n t M: d=1 d=d/10; P: int i ; double avg=0.0,sum=0.0;for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;sum+=sqrt(avg);}return sum;46、B: j=2 i j M: sum=0;j=0; = =P: int i; double sum=0.0; if (n>1 && n<=100) { for(i=1; i<=n; i++) sum+=1.0/(2*i-1)-1.0/(2*i); } return sum;47、B: n%10 break break M: t==0 *zeroP: double s=0, t=1; int i ; for(i=1; i<=n; i++) {t *= i; s+= 1./t;} return s;48、B: a[i] a[i] 0 M:y=1; d=a-i;P: int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5 == 0 || i%9 == 0) sum+=1.0/i; return sum;49、B: i t++ count M:int return 1;P: int i,j=0; double s=0; for (i=3; i<=n; i++) { for (j=2; j<i; j++)if (i%j == 0) break; if (j == i) s=s+sqrt(i); } return s;50、B: b a b M:c=c+32; c=c+5; P: int i; double fac=1.0; double sum=1.0;for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } return sum;51、B: 0 x t++ M:int i,sl; t[i] = s[sl-i-1];P: *c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);52、B: 999 t/10 x M:long *t s>0P: STREC tmp; int i,j; for(i = 0; i < N; i++)for(j = i+1; j < N; j++) if(a[i].s < a[j].s) {tmp = a[i]; a[i] = a[j]; a[j] = tmp; }53、B: 1 s i*10 M: xx[][M] %d P: *c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);54、B: 0 x*10 n/10 M:*t != P: char *p=p1; while(*p)p++; while(*p2)*p++=*p2++; *p=0;55、B: 10 0 x M: (n == 0) 少分号P: while(*p) x = x*10-48+(*p++);56、B: 0 n (t*t) M:; ; if P: double s=1,t=1./3; int n=1;while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); } return (s*2.0);57、B: 1 2*i (-1) M:; = =P: int i ; *max=a[0];*d = 0 ; for(i= 1; i < n; i++) if(*max < a[i]) {*max=a[i]; *d = i ; }58、B: 3.0 > 2*i+1 M: double doubleP: int i, j, max=a[0][0]; for(i=0; i<2; i++) for(j=0; j<M; j++) if(max<a[i][j]) max=a[i][j]; return max;59、B: 0 i++ 2.0*i M:(char *s, char *t) t[2*d] = '\0';P: int i, j = 0 ; for(i = 1 ; i < strlen(s) ; i += 2) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ;60、B: s[i] k 0 M: *w ifP: int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2==0) t[j++] = s[i] ; t[j] = 0 ;61、B:j k p M:< ifP: int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i++) if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ;t[j] = 0 ;62、B: 0 x[i]/N j++ M:double ; ; P: int i, min = a[0].s, j = 0; for(i = 1 ; i < N ; i++)if(min > a[i].s) { j = i ; min = a[i].s ; } *s = a[j] ;63、B: *av i x[j] M:float <=n P: int i, j; for(i = 0 ; i < N ; i++) for(j= i ; j< N ; j++) a[i][j] *= m ;64、B:s/N j++ -1 M:#include *pP: int i, n=0; double sum=0; for ( i =0; i<N; i++ ) { sum+=w[0][i]+w[N-1][i]; n+=2; }for(i =1; i<N-1; i++) { sum +=w[i][0]+w[i][N-1]; n+=2; } return sum/n; 65、B: x[i]/N j++ i++M:num[k]=0; *sP: int i,sum=0; for(i=0;i<N;i++) sum+=a[0][i]+a[M-1][i]; for(i=1;i<M-1;i++) sum+=a[i][0]+a[i][N-1]; return sum;66、B: '0' s++ ctod(a)+ctod(b) M:*a *b *a *bP: long w ; w = h * 100 + 0.5 ; return (float) w / 100;67、B: N break n M:sum=0; &a[i][j]P: int i,j;int arr[3][3];for(i=0;i<3;i++) for(j=0;j<3;j++) arr[i][j]=array[i][j];for(i=0;i<3;i++) for(j=0;j<3;j++) array[i][j]=arr[j][i];68、B: a[0][i] < x,y M:int *x,int *y t=*x;*x=*y;*y=t;P: for(j = 2 ; j <= (i/2) ; j++) if(i % j == 0) break; if(j > (i/2)) aa[k++] = i;69、B: [N] I i+1 M:m%k aa[ i-1 ] P: if(strlen(a[i]) > maxlen) { maxlen = strlen(a[i]) ;k= i ; }70、B: 0 || 1 M:t = t-1.0/i; return t; P: char *p = str ; int i = 0 ;while(*p) { if(*p != ' ') str[i++] = *p ; p++ ; } str[i] = 0 ;71、B: k N a[k][i] M:strlen( t )-1 > P: int i; for(i=1;i<strlen(ss);i+=2) if(ss[i]<='z'&&ss[i]>='a') ss[i]-=32;72、B: k N-1 temp M:int a[][M] (k+1)*(j+1) P: *c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);73、B: j 0 i++ M:i <= m y -= 1.0/(i * i) ;P: float av=0.0 ; int i, j=0 ; for(i=0; i<m; i++) av += score[i] ; av /= m;for(i=0; i<m; i++) if(av>score[i]) below[j++]=score[i]; return j;74、B: t,s s[i] 0 M:= = > = P: int i; *n=0; for(i=1; i <= x; i++) if((x % i== 0) && (i % 2)) pp[(*n)++]=i;75、B: s -- return 0 M:double b=c P: for(i = 2 ; i < t; i++) if(t % i==0) break; if(i==t) { xx[j-1] = i; j++; } t++;76、B: n++ 0 s++ M:t += s[k] ave P: int i, pos = 0, max = *s ; for(i = 1 ; i < t ; i++) {if(max < *(s + i)) { max = *(s + i) ; pos = i ; } } *k = pos ;77、B: *s s++ n M:c=0; >= P: float p,a=1,b=1,c=1; int i; for(i=1;i<=m;i++)a=a*i;for(i=1;i<=n;i++) b=b*i; for(i=1;i<=m-n;i++) c=c*i; p=a/(b*c); return p;78、B: 48 s++ sum M: = = = = }P: double sum=0.0; int i; for(i=21; i<=n; i++) if((i%3==0)&&(i%7==0))sum+=i; return sqrt(sum) ;79、B: *s 1 k[n] M:double ; P: double s = 0.0 ; int i ; for(i = 1 ; i <= n ; i++) s = s + 1.0 / (i * (i + 1)) ; return s ;80、B: i ps[j] tp M:double ; P: double s=1.0,t=1.0; int i; for(i=1;i<=n;i++){ t*=x/i; s+=t; } return s;81、B: N i -1 M:a2=k/10; return i; P: char *p = a ; while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ;82、B: N k ss[i] M: k=0 || P: if(a[i] != '*') a[k++]=a[i]; i++;83、B: N substr 0 M: int y, int z return j;P: char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(j<len-h-e) { a[j]=a[h+j]; j++; } a[j]=0;84、B: [M] N 0 M: t=1; 2*s P: for(; a[j] !=0 ; j++) a[i++]=a[j]; a[i] = 0;85、B: a score[i] M:s[j++]=s[i]; s[j]='\0'; P: while(*p) *q++=*p++;86、B: b->sno b->name &t M:double x0 (x1-x0) P: double t=0 ; int i ; *n = 0 ; for(i = 0 ; i < N ; i++)t = t + a[i].s ; t = t / N ; for(i = 0 ; i < N ; i++) if(a[i].s > t) b[(*n)++] = a[i] ; return t ;87、B: struct student a.score[i] M:P改小写a[i]=a[i+1]; P: int i,n=0,min=a[0].s;for(i=1;i<N;i++) if(min>a[i].s) min=a[i].s; for(i=0;i<N;i++) if(a[i].s==min) b[n++]=a[i];return n;88、B: struct student * a->score[i] a M:char * sp P: *c =(b%10)*1000+(a/10)*100+(b/10)*10+a%10;89、B: struct student t; n-1 a[i].name,a[j].name M: ; whileP: 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 ;90、B: fp== fp M:n=strlen( aa ); ch=aa[i]; P:double max=h->s; STREC *p;p=h->next;while(p) { if(p->s>max ) max=p->s; p=p->next; } return max;91、B: double f1 f2 M: p=h->next; p=p->next;P: int i=0,j=strlen(str)-1; while(str[i++]==str[j--]);if(i>=j) return 1;return 0;92、B: h->next p->next >= M:p=h->next; p=p->nextP: int i,j; *n=0; for(i=0;i<mm;i++) for(j=0;j<nn;j++) b[(*n)++]=s[i][j];93、B: NODE next r M:|| t[j]=0;P: for(i = 0 ; i < nn ; i++) for(j = 0 ; j < mm ; j++) { b[np] = s[j][i] ; np = i * mm + j + 1; }94、B: next 0 r M:r=t; *r== 0 P: for(i = 0 ; i < M ; i++) strcat(b, a[i]) ;95、B: p->next q p->next M:while(*s) s++P: int i, j = 0, b[N] ; for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ;for(i = 0 ; i <= p ; i++) b[j++] = w[i] ; for(i = 0 ; i < n ; i++) w[i]= b[i] ;96、B: double f1 f2M:char *fun ss++; tt++;P: int i; for(i = 0 ; i < m ; i++) fun1(w);97、B: h->next p->next >= M:p=h->next; p=p->nextP: int i,j; *n=0; for(i=0;i<mm;i++) for(j=0;j<nn;j++) b[(*n)++]=s[i][j];98、B: FILE * fclose(fp) fp M:; t[k]=b[j];P: int i, j = 1, k = a[0] ; for(i = 1 ; i < n ; i++) if(k != a[i]) { a[j++]=a[i] ; k = a[i] ; } a[j] = 0 ; return j ;99、B: "rb" > fwrite M:p=s; ; P: int i, j ; for(i = 0 ; i < M ; i++) b[i] = 0 ; for(i = 0 ; i < N ; i++) { j = a[i] / 10 ;if(j > 10) b[M - 1]++ ; else b[j]++ ; }100、B: filename fp fp M:NODE * return h P: int k = 1 ; while(*s) { if(*s == ' ') k++ ; s++ ; } return k ;。

国家计算机等级考试二级c语言-南开100套题(C语言)

国家计算机等级考试二级c语言-南开100套题(C语言)

1 第一套给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S rπ=2,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:19.527,输出为:s=598.949991。

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

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

试题程序:#include <stdio.h>double fun( double r){return 3.14159*【1】/2.0;}void main(){double x;printf("Enter x: ");scanf("%lf",【2】);printf("s=%lf\n",fun(【3】));}【参考答案】(1)r*r (2)&x (3)x 【考点分析】本题考查:圆面积计算公式Sπ=*r*r;scanf( )函数的形式,其一般形式为"scanf("格式控制字符串",地址表列);",注意地址是由地址运算符"&"后跟变量名组成的;printf( )函数的形式,其一般形式为"printf("格式控制字符串",输出表列);";函数实参调用,函数作为另一个函数调用的实际参数出现。

【解题思路】填空1:计算圆的面积,公式为:s rπ=*r。

填空2:scanf( )函数一般形式为scanf(格式控制,地址表列),因此填入&x。

填空3:函数的实际参数是圆的半径x。

下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

f(x)函数定义如下:f(x)=(1)(2)0002(1)(2)0x x xx xx x x⎧+/->⎪==⎨⎪-/-<⎩或请改正程序中的错误,使它能得出正确的结果。

南开二级C语言上级100题

南开二级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;c ase ‘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]++;brea k;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所指的数组中。

南开二级C语言上机100题

南开二级C语言上机100题
printf("Delete:%dn",x);
n=fun(w,n,x);
if (n==-1) printf("***Nor be found!***nn");
else
{printf("The data after deleted:n");
for (i=0,i<n;i++) printf("%5d",w[i]);printf("nn");
{ while(*s)
{ if (*s>='A' && *s<='Z')
***********************************
a++; ————(*a)++;
if (*s>='a' && *s<='z')
************************************
b++; ————(*b)++;
#include <stdio.h>
#include <string.h>
int fun (int score[],int m, int below[])
{
——————int i,k=0;float aver=0;
for(i=0;i<m;i++)
aver+=(score[i]);
aver/=m;
for (i=0;i<m;i++)
printf("The string b:"); puts (b);

南开大学100题c语言

南开大学100题c语言

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

答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i v m;i++)aver+=score[i];aver/=m;for(i=0;i v m;i++)if(score[i] v aver){below[k]=score[i];k++;xcfb}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 v 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 v =x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i v 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 所指的数组中。

C语言上机南开100题_答案及详解

C语言上机南开100题_答案及详解
阿尔伯特教研组编 禁止传阅
上机答案及详解 1) 考查知识点:采用递归算法求数的阶乘。 解题思路:所谓递归法,可以这样来理解:若要求 10!,则可看作是 9!×10,因此要求 10!,则需要知 道 9!;同理,9!=8!×9,则要求知道 8!;以此类推, 直到知道了 1!的值,才能得到 10!的值。这一过程 就是递归问题的第一个阶段­­回推。而 1!值(通常 初始值都是已知的或能很容易求得的)是已知的 (1!=1)。这里需要注意,必须要有条件使递归调用 终止,否则就会成为无终止调用,成为死循环。则 通过已知条件 1!=1,推得下一个结果 2!=1!×2=1 ×2=2。同理,也可推得 3!、4!直到推得 10!。这一 过程就是递归问题的第二个阶段­­递推。递推的共 同特点是从一个已知的事实出发,按一个共同的规 律推出下一个事实,再从这个新的已知事实出发, 再向下推出一个新的事实。 因此可用下面的递归公式表示 n!
{ if(*p<*q) c[k]=*q; /*这句和下句是把 a 或 b
中大的一个值存入 c*/ else c[k]=*p; /*如果两个数组不等长,就把长的一个数
组的剩余部分继续拷贝到 c 数组中*/ if(*p) p++; if(*q) q++; k++;
}
【参考答案】: 第 1 处:int k = 1; 应改为 int k = 0; 第 2 处:while(*p != *q) 应改为 while(*p || *q)
函数类型 函数名(数据类型 形式参数; 数据 类型 形式参数...) /*此处不能用";"*/
{ 函数体;
}
(2)if 语句的声明如下:
if(条件) { 语句或复合语句}

计算机二级c语言上机(南开大学)100题

计算机二级c语言上机(南开大学)100题

计算机二级C语言上机(南开大学)100题程序填空题1 补充fun函数,fun函数的功能是求10的阶乘。

n>1 n-1 n==12 在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出数列是一种整数数列,其中每数等于前面两数之和n==o n==1 fun(n-1)+fun(n-2)3 补充函数fun(char*s),该函数的功能是把字符串中的内容逆置s+i<s+n-1-i*(s+i)=(s+n-1-i) *(s+n-1-i)=t4 补充函数fun,他的功能是计算并输出n(包括n)以内能被3或7整除的所有自然数的倒数之和i<=ni%3==0||i%7==0 1.0/i5 功能是求1/2的圆面积,函数通过形参得到圆的半径,函数返回1/2的圆面积r r*r &x6 功能是计算并输出下列级数的前N项合Sn,直到Sn大于q为止,q 的值通过形参传入<= n++return s7 函数fun的功能是统计长整数n的各个位上出现数字1.2.3的次数,并通过外部(全局)变量c1.c2.c3返回主函数n%10 break break8 补充main函数,功能是从键盘输入一组整数,使用条件表达式找出最大的整数,当输入的整数为0时结束&num[i]max<num[i]? num[i]!=09 给定程序的功能是分别统计字符串中大写字母和小写字母的个数(*a)++ (*b)++ upper,lower10 补充main函数,功能是从键盘输入3个整数,然后找出最大的数并输出。

max=a max=b max=c11 函数fun的功能是把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动1 s[k] c12 补充fun函数,功能是字符串tt中的大写字母都改为对应的小写字母,其他的字符不变。

tt[i]<='Z'tt[i]+=32 tt13 补充fun函数,功能是判断一个数是否为素数。

三级C语言_南开100题_上机考试题库

三级C语言_南开100题_上机考试题库

全国计算机等级考试三级C语言程序设计南开100题上机考试题库【终极无错版】【注:三级除PC技术考汇编外,其它均考C语言,其上机题库是一样的】【这是最经典的04版,我仔细对比了所谓的06版题库及08版上机模拟软件中的题,其实都是04版的。

09年笔试大纲有变动,但是机试题库应该不会换,因为再编个南开100题(库)没有必要,也很累,还不能保证正确性(起码要经过多番验证才能投入使用)。

参加09年三级考试的朋友请放心使用。

就算变动也不过是把改一下个别数组名、把“升序排列”改为“降序排列”、把“从小到大”改为“从大到小”等,所以请大家消除疑虑,放心使用】资料收集整理:(以后该网站将发布(收集和原创)计算机二三级资源、电脑常见问题的解决视频教程、网络相关问题文章,如果你遇到了电脑、网络方面的问题可以到这来查找视频和图文教程或咨询,也欢迎高手来此帮助他人解决问题)下载地址:(有自带VC++的上机系统下载)题目前带★号的是在2004年4月份考试被考生们所确定了的上机题。

题目前带☆号的是在2004年9月份考试被考生们所确定了的上机题。

05年后抽到的题没作标识。

题目中所提示的“无忧id xx”指的是2004年上半年版无忧模拟系统中的固定抽题序号题目中所提示的“捷成id xx”指的是2004年上半年版捷成模拟系统中的固定抽题序号********************************题目1(无忧 id 14、id 27(提供isP()函数;捷成id 23题)请编写一个函数jsValue(int m,intk,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx 传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件中。

部分源程序存在文件中。

例如:若输入17 5 则应输出:19,23,29,31,37。

请勿改动主函数main()和写函数writeDat()的内容。

南开100题

南开100题

计算机二级C语言上机南开100题--11: 第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所指的数组中。

三级C语言_南开100题_上机考试题库

三级C语言_南开100题_上机考试题库

全国计算机等级考试三级C语言程序设计南开100题上机考试题库【终极无错版】【注:三级除PC技术考汇编外,其它均考C语言,其上机题库是一样的】【这是最经典的04版,我仔细对比了所谓的06版题库及08版上机模拟软件中的题,其实都是04版的。

09年笔试大纲有变动,但是机试题库应该不会换,因为再编个南开100题(库)没有必要,也很累,还不能保证正确性(起码要经过多番验证才能投入使用)。

参加09年三级考试的朋友请放心使用。

就算变动也不过是把改一下个别数组名、把“升序排列”改为“降序排列”、把“从小到大”改为“从大到小”等,所以请大家消除疑虑,放心使用】资料收集整理:(以后该网站将发布(收集和原创)计算机二三级资源、电脑常见问题的解决视频教程、网络相关问题文章,如果你遇到了电脑、网络方面的问题可以到这来查找视频和图文教程或咨询,也欢迎高手来此帮助他人解决问题)下载地址:(有自带VC++的上机系统下载)题目前带★号的是在2004年4月份考试被考生们所确定了的上机题。

题目前带☆号的是在2004年9月份考试被考生们所确定了的上机题。

05年后抽到的题没作标识。

题目中所提示的“无忧id xx”指的是2004年上半年版无忧模拟系统中的固定抽题序号题目中所提示的“捷成id xx”指的是2004年上半年版捷成模拟系统中的固定抽题序号********************************题目1(无忧 id 14、id 27(提供isP()函数;捷成id 23题)请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx 传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件中。

部分源程序存在文件中。

例如:若输入17 5 则应输出:19,23,29,31,37。

请勿改动主函数main()和写函数writeDat()的内容。

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

南开C语言一百题: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到1000之内能被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’: p p[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所指的数组中。

答案: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=0;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: 第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。

其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

答案: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: 第7题请编写一个函数int fun(int *s,int t,int *k),用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中。

答案: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: 第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)答案: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: 第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。

m与n为两个正整数,且要求m>n。

p=m!/n!(m-n)!答案: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: 第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋各x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出root=0.739085。

答案:float fun(){float x1=0.0,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>1e-6);return x1;}11: 第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。

请编写函数fun(i nt a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。

答案: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: 第12题下列程序定义了n×n的二维数组,并在主函数中赋值。

请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

答案: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: 第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。

二维数组中的数已在主函数中赋予。

答案: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: 第14题请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

答案: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: 第15题请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

答案: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: 第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。

答案:float fun(float h){long t;float s;h=h*1000;t=(h+5)/10;s=(float)t/100.0;return s;}17: 第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。

答案: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: 第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。

答案: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: 第19题编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。

相关文档
最新文档