2010大学C语言程序设计试题及答案
201012真题C语言(含答案)

0124、以下叙述正确的是()。
A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。
A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。
A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。
A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。
A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。
A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。
A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。
A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。
A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。
A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。
2010全国计算机等级考试二级C语言南开大学机试题库100套答案填空题答案

2010全国计算机等级考试二级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处填空:&&第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第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第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第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第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)应改为void fun(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;第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;第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)应改为void fun(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)应改为void fun(char*s,char*t1,char*t2,char*w) 第2处:while(w)应改为while(*w)第1处:fun(int n)应改为double fun(int n)第2处:return sum应改为return sum;第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)应改为double fun(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);应改为int fun(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)应改为void fun(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)应改为double fun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为double fun(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)应改为void fun(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)第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;}}第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++;}}第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);else{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,int nn)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题答案。
2010C语言题库

1 bc000010 #include /* 输入任意一个四位数,将其各位数字反序输出。 示例: 输入 1234 输出 4321 */ //解答参考,错误难免,据此答题,后果自负 void main() { int a; scanf("%d",&a); printf("%d%d%d%d",a%10,a/10%10,a/100%10,a/1000); } \bc000020 #include #include #include #include /* 从键盘输入三个整数,计算平均值,计算结果输出到屏幕。 示例: 输入:输入数的格式是: 11 22 33 输出:平均值保留2位小数 22.00 */ //解答参考,错误难免,据此答题,后果自负 void main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%.2f",(a+b+c)/3.0); } \bc000030 #include /* 输入梯形上底、下底和高,计算面积(保留2位小数)。 示例: 输入:输入数的格式是:上底 下底 高 1.1 2.2 3.3 输出: 5.45 */ //解答参考,错误难免,据此答题,后果自负 void main() { double a,b,c,d; scanf("%lf%lf%lf",&a,&b,&c); d=(a+b)*c/2; printf("%.2f",d); }
\bc000040 #include #include #include #include
/* 已知圆柱的底面圆半径,柱面高,求圆柱体积(π=3.14,体积保留2位小数)。 示例: 输入: 半径 高 1.1 2.2 输出: 8.36 */ //解答参考,错误难免,据此答题,后果自负 void main() { double r,h,v; scanf("%lf%lf",&r,&h); v=r*r*3.14*h; printf("%.2f",v); }
2010年3月全国计算机二级(C语言程序设计)笔试真题及参考答案

2010年3月全国计算机等级考试二级笔试试卷C 语言程序设计及参考答案一、选择题(1) 下列叙述中正确的是A)对长度为n 的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n 的有序链表进行对分查找,最坏情况下需要的比较次数为(2log n )D) 对长度为n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n 2log n )(2) 算法的时间复杂度是指A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数(3) 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器(4) 软件(程序)调试的任务是A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误的性质(5) 数据流程图(DFD 图)是A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D )面向对象方法的需求分析工具(6) 软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段7) 数据库管理系统中负责数据模式定义的语言是A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言(8) 在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件 B)数据库 C)字段 D)记录(9) 数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段(10) 有两个关系R 和T 如下:A)选择 B )投影 C)交 D)并(11) 以下叙述正确的是A)C 语言程序是由过程和函数组成的 B)C 语言函数可以嵌套调用,例如:fun(fun(x))C)C 语言函数不可以单独编译 D)C 语言中除了main 函数,其他函数不可以作为单独文件形式存在(12) 以下关于C 语言的叙述中正确的是A)C 语言中的注释不可以夹在变量名或关键字的中间 B)C 语言中的变量可以再使用之前的任何位置进行定义C)在C 语言算术的书写中,运算符两侧的运算数类型必须一致 D)C 语言的数值常量中夹带空格不影响常量值的正确表示(13) 以下C 语言用户标示符中,不合法的是A)_1 B)AaBcC)a_b D)a--b (14) 若有定义:double a=22;int i=0,k=18;则不符合C 语言规定的赋值语句是A)a=a++,i++ B)i=(a+k)<=(i+k) C)i=a%11 D)i=!a(15)#include <stdio.h>main(){char a,b,c,d;scanf("%c%c",&a,&b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:A、1234B、12C、12D、1216、以下关于C语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自然数,应使用整数类型。
C语言自考试题答案(2010年4月)

C语言自考试题答案(2010年4月)一、选择题(每题2分,共40分)1. C语言中,下列哪个选项不是合法的数据类型关键字?A) intB) floatC) charD) string答案:D2. 下列哪个选项不是C语言的逻辑运算符?A) &&B) ||C) !D) ++答案:D3. 若变量a声明为整型,则以下哪个选项表示a的二进制位运算?A) a<<2B) a>>2C) a&2D) a^2答案:A以下题目略...二、填空题(每题2分,共30分)1. C语言中,用于声明一个整型变量的关键字是______。
答案:int2. 在C语言中,如果一个整型变量声明为static类型,则其存储期为______。
答案:全局生命周期3. 在C语言中,结构体类型的变量可以通过______来访问其成员。
答案:点操作符(.)以下题目略...三、编程题(共30分)1. 编写一个C程序,实现以下功能:输入10个整数,计算并输出它们的平均值。
```cinclude <stdio.h>int main() {int numbers[10];int sum = 0;float average;printf("请输入10个整数:\n");for (int i = 0; i < 10; i++) {scanf("%d", &numbers[i]);sum += numbers[i];}average = (float)sum / 10;printf("平均值是:%f\n", average);return 0;}```2. 编写一个C程序,实现以下功能:输入一个字符串,统计并输出其中字母、数字和其他字符的个数。
```cinclude <stdio.h>include <ctype.h>int main() {char str[100];int letter_count = 0, digit_count = 0, other_count = 0;printf("请输入一个字符串:\n");gets(str);for (int i = 0; str[i] != '\0'; i++) {if (isalpha(str[i])) {letter_count++;} else if (isdigit(str[i])) {digit_count++;} else {other_count++;}}printf("字母个数:%d\n", letter_count);printf("数字个数:%d\n", digit_count);printf("其他字符个数:%d\n", other_count);return 0;}```3. 编写一个C程序,实现以下功能:输入一个整数n (n >= 2),输出其所有的因子。
2010软件专业人才设计与开发大赛 部分试题 (C语言本科组)

2010软件专业人才设计与开发大赛部分试题(C语言本科组)程序空题:(5+5+5+5+10 = 30)五题:void f(int n){for(int i=2; i<n/2; i++){-----------(1)------------{printf("%d ", i);n = n / i;}}if(n>1) printf("%d\n", n);}第二题:char* p = "abcdef";char* q = (char*)malloc(strlen(p)+1);for(int i=0, int len=strlen(p); i<len-1; i++)q = p[i+1];q[len-1] = p[0];-----(2)----;printf("%s\n", q);第三题:int f(int m, int n){int a = 1;int m1 = m;-----(3)----a *= m1--;int b = 1;while(n>1)b *= n--;return a / b;}第四题:int f(int n){int N[4];for(int i=0; i<4; i++){N[3-i] = n % 10;----(4)----}for(i=0; i<3; i++)for(int j=0; j<3-i; j++)if(N[j]>N[j+1]){int t = N[j+1];N[j+1] = N[j];N[j] = t;}int n_min=0;for(i=0; i<4; i++)n_min = n_min * 10 + N ;int n_max = 0;for(i=3; i>=0; i--)n_max = n_max * 10 + N;return n_max-n_min;}第五题://m: 持有5角币的人数//n: 持有1元币的人数//返回:所有顺利完成购票过程的购票次序的种类数int f(int m, int n){if(m < n) return 0;if(n==0) return 1;return ___________(5)____________;}最后一题:编程题:1请完成设计文档(设计思路)2设计题只需完成这个函数:bool TestResolve(char* question, int* oper, char* answer){// 等待考生完成}求二十四点:// Calcu24.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include "conio.h"#include "stdlib.h"#include "time.h"#include "math.h"#include "string.h"/*从一副扑克牌中,任取4张。
大学《C语言程序设计》期末考试试卷及参考答案

大学《C语言程序设计》期末考试试卷及参考答案《C语言程序设计》期末考试试卷参考答案一、判断题(10分)1、对2、对3、错4、错5、对6、错7、错8、错9、错10、错二、填空题(30分,,1到10题1分1空,10到18题2分1空)1.2.5 2. a!=0&&b!=0 3. m=1b 4. windows 95 5. x[i]>='A'&&x[i]<='Z' 6.234567 7.文件的首纪录前8、struct tree *Ltree,*Rtree 9. i<=10010. char a[10]="continue"; 11. p*pow(1+r,5) 12. 'D' 13. 10、514.#define utol(ch) ch=ch>='A'&& ch<='Z' ? ch+'a'-'A':ch15.首行第i+1个元素的地址,第i+1行的首地址,a[0][0]的值16.p=(int*)mallo(n);17. (-b+sqrt(b*b-4*a*c))/2/a 18. float(*fg)(float **,int,int);三、单项选择题(在每小题的四个备选答案中选出一个正确的,10分))1、A2、B3、C4、B5、D6、A7、A8、B9、C 10、A四、程序阅读题(20分,每题4分)1、 A C E G2、 x=3 y=23、the two string are same:fthe two string are same:r4、 K=85、1《C语言程序设计》期末考试试卷及参考答案一、判断题(10分)1、C语言是一种结构化程序设计语言。
()2、在标准C中,整型变量与字符变量是可以通用的。
()3、在标准C中,“=”是判断两个数是否相等。
厦门理工学院C语言程序设计期末测试题及答案(5套)

if(c>=’a’&&c<=’z’)
c=c-32;
# else
if(c>=’A’&&c<=’Z’)
c=c+32;
# endif
printf(“%c”,c);
}
上面程序的运行结果是:
A) C Language
B) c language
C) C LANGUAGE D) c lANGUAGE
20. 假定以下程序经编译和连接后生成可执行文件 PROG.EXE,如果在此可执行文件所 在目录的 DOS 提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv[])) { while(--argc>0) printf("%s",argv[argc]);
D)switch (a+b);
{ case 1:printf("\n");
{ case 1:printf(."*\n");
case 1+2:printf("**\n");
case 2:printf("**\n");
}
}
11.以下程序运行后,如果从键盘上输入 ABCDE,则输出结果为
A) 8 B)7 C)6 D)5
A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3
9.下面程序的输出是
main()
{ unsigned a=32768;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010大学C语言程序设计试题及答案一、单选题(每小题2分,共20分)(1)变量的指针,其含义是指该变量的。
A) 值 B) 地址 C) 名 D) 一个标志(2)若有说明int (*p)[3];则以下是正确的叙述。
A) p是一个指针数组B) p是一个指针,它只能指向一个包含3个int类型元素的数组C) p是一个指针,它可以指向一个一维数组中的任一元素D) (*p)[3]与*p[3]等价(3)以下是对共用体类型数据的正确描述。
A) 一旦定义了一个共用体变量后,即可引用该变量或该变量中的任何成员。
B) 一个共用体变量中可以同时存放其所有成员C) 一个共用体变量中不能同时存放其所有成员D) 共用体类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在共用体类型定义中。
(4)若有语句int array[3][4];以下对下标为i和j的数组元素的引用不正确的是。
A) array[i][j] B) *(*(array+i)+j) C) *(array[i]+j) D) *(array+i*4+j)(5)一般情况下,文件占用存储空间较多。
A)二进制文件 B)文本文件 C)随机文件 D)顺序文件(6)以下引用非法的是。
struct student{ int num;int age;}stu1,*p;p=&stu1;A) stu1.age B) student.age C) p->age D) (*p).age(7)指针变量一定不能进行的运算是。
A)+ B)- C)= D)/(8)以下关于main()函数的说法,正确的是。
A) main()必须是程序的第一行 B)main()可以有参数C) 一个程序可以有多个main() D)main()可以被用户自定义的函数调用(9)关于下面的函数,正确的说法是。
void Swap(int *p1, int *p2){ int *p;*p = *p1;*p1 = *p2;*p2 = *p;}A) 交换*p1和*p2的值 B) 正确,但无法改变*p1和*p2的值C) 交换*p1和*p2的地址 D) 编译时可能出现警告错误(10)若对文件的操作未到文件尾时,feof(fp)函数的返回值是。
A)EOF B)1 C)0 D)不定的非零值二、读程序,写结果。
(每小题6分,共18分)(1)输入20和30,写出其输出结果。
#include<stdio.h>void input(int *p,int *q);void add(int *p,int *q);void process(int *p,int *q,void (*fun)(int *,int *));main(){ int a,b;process(&a,&b,input);process(&a,&b,add);}void input(int *p,int *q){ printf("Input:");scanf("%d%d",p,q);}void add(int *p,int *q){ printf("Output:%d\n",*p+*q);}void process(int *p,int *q,void (*fun)(int *,int *)){ (*fun)(p,q);}(2)#include <stdio.h>main(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int *p;for(p=a[0];p<a[0]+12;p++){ if((p-a[0])%4==0)printf("\n");printf("%4d",++(*p));}}(3)#include <stdio.h>struct student{ int num;char name[20];char sex;int age;};struct student stu[3]={{10101,"Mike",'M',18},{10102,"Jim",'M',19},{10103,"Ann",'F',20}};main(){ struct student *p,t;t=stu[0];stu[0]=stu[2];stu[2]=t;for (p=stu;p<stu+3;p++)printf("%5d %-5s %2c %4d\n",p->num, p->name, p->sex, p->age);}三、程序填空题(每空3分,共18分)(1)下面程序在数组中同时查找最大元素和最小元素的下标,分别存放在main()函数的max和min中。
#include <stdio.h>void find(int *a,int n,int *max,int *min);main(){int max,min,a[]={8,3,7,1,4,6,9,5};find( );printf("max=%d,min=%d\n",max,min);}void find(int *a,int n,int *max,int *min){int i;*max=0;*min=0;for(i=0;i<n;i++){if(a[i]>a[*max]);if(a[i]<a[*min]);}}(2)下面程序用变量count统计文件中字符的个数。
#include <stdio.h>#include <stdlib.h>main(){FILE *fp;char ch;long count=0;if((fp=fopen("letter.dat", ))==NULL){printf("cannot open this file\n");exit(0);}while(( )!=EOF);printf("count=%ld\n",count);fclose(fp);}四、编写程序。
(共44分)(1) 已知三个字符串,分别是“C Language”、“Final Exam”和你名字的拼音,请按由大到小的顺序输出。
要求将字符串的排序写成函数。
(12分)(2)用结构体方法编程实现输入十个学生的姓名、性别、成绩,求平均成绩,把低于平均成绩的男生的姓名与分数输出。
(12分)(3)从键盘输入一行字符,输入后把它存储到一磁盘文件test.txt中。
再从该文件中读出这些数据,将其中的小写字母转换成大写字母后在屏幕上输出。
(10分)(4)建立一个链表,每个结点包括:编号、姓名、电话、Email。
输入一个电话,如果链表中的结点所包含的电话等于此电话,则将此结点删除。
(10分)C语言程序设计试题答案一、单选题(每小题2分,共20分)ABCDB BDBDC二、读程序,写结果。
(每小题6分,共18分)(1) Output:50(2)2 4 6 810 12 14 1618 20 22 24(3) 10103 Ann F 2010102 Jim M 1910101 Mike M 18三、程序填空题(每空3分,共18分)(1) a,8,&max,&min*max=i*min=i(2)"r"ch=fgetc(fp)count++四、编写程序。
(共44分)(1) #include<stdio.h>#include<string.h>void sort(char *name[ ],int n);main(){char *name[]={"C Language","Final Exam","考生姓名"};int i,n=3;sort(name,n);for(i=0;i<3;i++)printf("%s\n",name[i]);}void sort(char *name[ ],int n){char *temp;int i,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(strcmp(name[k],name[j])<0)k=j;if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;}}}(2)#include <stdio.h>#include <string.h>#define N 10struct student{char name[10];char sex[2];float score;};main( ){struct student s[N];int i;float sum,ave;for(i=0;i<N;i++){printf("姓名:");gets(s[i].name);printf("性别:");gets(s[i].sex);printf("分数:");scanf("%f",&s[i].score);getchar();}sum=0;for(i=0;i<N;i++)sum=sum+s[i].score;ave=sum/N;for(i=0;i<N;i++)if((s[i].score<ave)&&(strcmp(s[i].sex,"男")==0)) printf("\n%s:%f",s[i].name,s[i].score);}(3)#include<stdio.h>#include<stdlib.h>#define N 100main(){FILE *fp;char ch,*p,s[N];gets(s);if((fp=fopen("test.txt","w"))==NULL){printf("cannot open outfile\n");exit(0);}p=s;while(*p!='\0'){fputc(*p++,fp);}fclose(fp);printf("\n");if((fp=fopen("test.txt","r"))==NULL){printf("cannot open outfile\n");exit(0);}while((ch=fgetc(fp))!=EOF){if(ch>='a'&&ch<='z')ch-=32;putchar(ch);}printf("\n");fclose(fp);}(4)#include <stdio.h>#include <stdlib.h>#include <string.h>struct person *creat();struct person *del(struct person *head,char *telephone); void print(struct person *head);#define LEN sizeof(struct person)struct person{int no;char name[20];char tel[15];char email[30];struct person *next;};int n;main(){struct person *head;char telephone[15];printf("intput records:\n") ;head=creat();print(head);printf ("\nintput the deleted telephone number:\n"); gets(telephone);head=del(head,telephone);print(head);}struct person *creat(){struct person *head;struct person *p1,*p2;n=0;p1=p2=(struct person*) malloc(LEN);scanf("%d",&p1->no);getchar();gets(p1->name);gets(p1->tel);gets(p1->email);head=NULL;while(p1->no!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(struct person*)malloc(LEN);scanf("%d",&p1->no);getchar();gets(p1->name);gets(p1->tel);gets(p1->email);}p2->next=NULL;return(head);}struct person *del(struct person *head,char *telephone) {struct person *p1,*p2;if (head==NULL){printf("\nlist null!\n");goto end;}p1=head;while(strcmp(p1->tel,telephone) && p1->next!=NULL) {p2=p1;p1=p1->next;}if(strcmp(p1->tel,telephone)==0){if(p1==head)head=p1->next;elsep2->next=p1->next;printf("delete:%s\n",telephone);n=n-1;}elseprintf("%s not been found!\n",telephone);end:return(head);}void print(struct person *head){struct person *p;printf("\nNow,These %d records are:\n",n);p=head;if(head!=NULL)do{printf("%d %s %s %s\n",p->no,p->name,p->tel,p->email);p=p->next;}while(p!=NULL);}。