华中科技大学2003-2006级信息学院《C语言程序设计》考试试题及答案
华中科技大学标准C语言程序设计及应用习题答案

第二章一.选择题1.C2.B D3.A4.A5. D6.C7.D8.C9.A 10.D 11.B 12.D 13.C 14.D 15.A16.B 17.A 18.B 100011 001111二.判断题1.错2.错3.错4.错三.填空题1. B 662. n1=%d\nn2=%d\n3. 0四.计算1(1)x|y = 0x002f(2)x^y = 0x0026(3)x&y = 0x0009;(4)~x+~y = 0xffc6(5)x<<=3 0x0068(6)y>>=4 0x00022(1) 6(2)50(3) 1(4)–16(5) 1(6)203(1)0(2) 1(3) 1(4) 4(5)8(6) 14(1)12(2)0(3) 1(4)27(6) 6(7)24(8)27(9)–295(1)0(2) 1(3) 1(4)–3(5) 2五.程序分析题程序1b=20 a=3600程序2第三章一.填空题1.s=62.963.(1) scanf("%c",&c);(2) c-32 更好的答案:c-('a'-'A')2.1main(){int a,b;printf("please input a & b:");scanf("%d%d",&a,&b);printf("\nmax is %d\n",(a>b)?a:b);}2.2int max(int x,int y);main(){int a,b,c,max;printf("please input a & b & c:");scanf("%d%d%d",&a,&b,&c);max=a>b?a:b;max=c>max?c:max;printf("\nmax is %d\n",max);}2.3{int i=0,sum=0;while(i<=100){sum+=i;i++;}printf("1+2+3+......+100=%d\n",sum);}2.4main(){int i;int a=10,b=-3;int c;printf("%6d%6d",a,b);for(i=2;i<10;i++){c=3*b+a;printf("%6d",c);a=b;b=c;}printf("\n");}2.5main(){int i;while(1){printf("please input a data(0:exit):");scanf("%d",&i);if(i==0)break;if(i%2==0)printf("the data %d is a even number.\n",i);elseprintf("the data %d is a odd number.\n",i); }}2.6#include <stdio.h>main(){int i;int a=8,b=1;int sum=0;for(i=0;i<10;i++){b+=3;sum += a;a+=b;printf("a%8d b:%8d\n",a,b);}printf("The Sum Of Is:%d\n",sum);}2.7#include <stdio.h>main(){float x,y;printf("please input x:");scanf("%f",&x);if(x<1.0)y=x;else if(x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}2.8#include <stdio.h>main(){long a,i,b,a1;while(1){printf("please input data(1-99999):");scanf("%ld",&a);printf("a:%ld\n",a);if(a<=0||a>=100000)break;i=0;a1=0;while(a!=0){b=a%10;printf("%8d",b);a/=10;i++;a1=a1*10+b;}printf("\n i:%ld a1:%ld\n",i,a1);}}2.9#include <stdio.h>#include <time.h>#include <stdlib.h>main(){int a,b,i,k=0;randomize();a=random(1001);/*create a random data(0-1000)*/ for(i=0;i<20;i++){printf("please guess a number:");scanf("%d",&b);if(a>b){k++;printf("\n%d:Smaller,guess again!\n",k);}else if(a<b){k++;printf("\n%d:Bigger,guess again!\n",k);}else{printf("\nYou guess right,congraturation!") ;printf("\nYou have guessed %d times",k);break;}}if(k==20)printf("\nsorry,you failed!");}2.10#include <stdio.h>main(){int a,b,c;int num;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=1;c<10;c++){num=a*100+b*10+c;if((num%3==0)&&(a==5||b==5||c==5))printf("%8d",num);}}}printf("\n\n\n");}2.11#include <stdio.h>main(){int i;int a,b;printf("please input a,b:");scanf("%d%d",&a,&b);for(i=a<b?a:b;i>0;i--){if(a%i==0&&b%i==0){printf("The max=%d",i);break;}}for(i=a>b?a:b;i>0;i++){if(i%a==0&&i%b==0){printf("\nThe min=%d",i);break;}}2.12#include <stdio.h>main(){int a,k=0;printf("please input data:");scanf("%d",&a);while(a%2==0){a=a/2;k++;}printf("\nthe number of factor(2) is %d",k); }2.13main(){long i,t=1;long sum=0;for(i=1;i<=10;i++){t*=i;sum+=t;printf("%ld!=%ld\n",i,t);}printf("sum:%ld\n",sum);}2.14#include <stdio.h>void main(){int i,x=0;for(i=9;i>=1;i--){x=2*(x+1);}printf("The first day:%d",x);}2.15#include <stdio.h>#define PI 3.141593main(){float r,h;float v;printf("please input r,h:");scanf("%f%f",&r,&h);v=1.0/3*PI*r*r*h;printf("V=%.2f",v);}2.16#include<stdio.h>#include<math.h>main(){long int sn=0;long int m=0,t=0;int a,n,i;printf("please input a n:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){m=m*10+a;sn+=m;}printf("a+aa+aaa+...+aa...a=%ld\n\n",sn); }2.17#include <stdio.h>main(){int k;printf("please input k:");do{scanf("%d",&k);if(k>=0&&k<=6)break;}while(1);switch(k){case 0:printf("Sunday.\n");break;case 1:printf("Monday.\n");break;case 2:printf("Tuesday.\n");break;case 3:printf("Wednesday.\n");break;case 4:printf("Thursday.\n");break;case 5:printf("Friday.\n");break;case 6:printf("Saturday.\n");break;}}2.18#include <stdio.h>main(){int i;double x,a,b=1,sum=1;printf("please input x:");scanf("%lf",&x);a=x;for(i=1;a/b>=1e-6;i++){sum=sum+a/b;a=a*x;b=(i+1)*b;}printf("\nsum=%lf",sum);}2.19#include <stdio.h>#include <math.h>main(){float a,x1,x2;printf("input a:");scanf("%f",&a);x1=1.0;while(1){x2=1.0/2*(x1+a/x1);if(fabs(x2-x1)<1e-5)break;x1=x2;}printf("sqrt(a)=%f",x2);}第四章写出下列程序输出结果1.no 1 a=1no 1 a=0no 1 a=1no 1 a=02.a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=03.main:x=5,y=1,n=1func:x=6,y=21,n=11main:x=5,y=1,n=11func:x=8,y=31,n=21第五章1.D2.D3.C4.65.CDABC6.(1)j+=2(2)a[i]<a[j]7.(1)s[i++]!='\0'(2)s[i-1]8.D9.B10.6(同题4)11.s[i]>='0'&&s[i]<='9'12. (1)'\0' (2)str1[i]-str2[i]5.1#include<stdio.h>int fun();int fun(){int a[3][3],sum;int i,j;sum=0;/*error*/for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d",&a[i][j]);/*error*/}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%d\n",sum);}void main(){fun();}5.2#include <stdio.h>void main( void ){float Num[10];float Input,GetNum[11];int i,j;float a=6;for(i=0; i<10; i++){Num[i]=a;a=a+7.5;}Loop1: printf("Please input a Number(0-80) Input=");scanf("%f",&Input);if((Input<0)||(Input>70)==1)goto Loop1;for(i=0; i<10; i++ ){if(Input<Num[i])goto Loop2;}Loop2: for(j=0; j<i; j++ )GetNum[j]=Num[j];GetNum[j]=Input;for(j=i; j<=10; j++,i++)GetNum[j+1]=Num[i];for(j=0; j<11; j++ )printf("%3.3f ",GetNum[j]);}5.3#include "stdio.h"#include "stdlib.h"main(){int a1,a2,a3,a4,a5,a6,a7,a8,a9;int a[3];int i;for(;;){for (i=0;i<3;i++){a[i]=rand()%3;}while((a[0]!=a[1]) && (a[0]!=a[2]) && (a[1]!=a[2]))/*get three different numbers 0,1,2*/{a1=a[0]+1;/*divide 1~9 into three groups,a1~a3,a4~a6,a7~a9*/a2=a[1]+1;a3=a[2]+1;a4=a1+3;a5=a2+3;a6=a3+3;a7=a1+6;a8=a2+6;a9=a3+6;/* make sure that each line and each row is made up with three members in different group.*//* such as: a9 a1 a5a2 a6 a7a4 a8 a3 */if(((a1+a5+a9) == (a2+a6+a7)) && ((a1+a5+a9) == (a3+a4+a8))&& ((a1+a6+a8) == (a5+a7+a3)) && ((a1+a5+a9) == (a2+a4+a9))) {printf("%d %d %d\n%d %d %d\n%d %d %d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3);return;}}}}5.4#include <stdio.h>void main(void){char input1[100],input2[100],input3[100];int i,Eng=0,eng=0,num=0,blank=0,other=0;printf("Input 3 rows of character,each row don't exceed 80 characters:\n");gets(input1);printf("The second row:\n");gets(input2);printf("The third row:\n");gets(input3);/*test the first row*/for(i=0; i<100; i++){if(input1[i]=='\0')goto Loop1;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)Eng++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)eng++;else if(('0'<=input1[i])&&(input1[i]<='9')==1)num++;else if(input1[i]==32)blank++;else other++;}/*test the second row*/Loop1: for(i=0; i<100; i++){if(input2[i]=='\0')goto Loop2;else if(('A'<=input2[i])&&(input2[i]<='Z')==1)Eng++;else if(('a'<=input2[i])&&(input2[i]<='z')==1)eng++;else if(('0'<=input2[i])&&(input2[i]<='9')==1)num++;else if(input2[i]==32)blank++;else other++;}/*test the third row*/Loop2: for(i=0; i<100; i++){if(input3[i]=='\0')goto Loop3;else if(('A'<=input3[i])&&(input3[i]<='Z')==1)Eng++;else if(('a'<=input3[i])&&(input3[i]<='z')==1)eng++;else if(('0'<=input3[i])&&(input3[i]<='9')==1)num++;else if(input3[i]==32)blank++;else other++;}Loop3: printf("Upper english character:%d\nLower english character:%d\nNumber:%d\nBlank:%d\nOther characters:%d\n",Eng,eng,num,blank,other);}5.5#include <stdio.h>void main(void)char str1[80],str2[40];int i,j,k;/*Input two string*/printf("Please input the first string\n str1=");gets(str1);printf("Please input the second string\n str2=");gets(str2);/*Get the end of str1*/for(i=0; i<80; i++){if(str1[i]=='\0')break;}/*Copy str2 to str1*/for(j=i,k=0; str2[k]!='\0';k++,j++)str1[j]=str2[k];str1[i+k]='\0';puts(str1);}5.6#include <stdio.h>struct student{char name[20];int score;}stu[5],stu1;void main(void){ int i,j;printf("Input student's score and name(5),seperate using the character of ',' :\n");for(i=0; i<5; i++)scanf("%d,%s",&stu[i].score,&stu[i].name);/*sorting*/for(i=0; i<5; i++)for(j=0; j<4-i; j++)if(stu[j].score>stu[j+1].score){stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;}printf("After sotred,score and name:\n");for(i=0; i<5; i++)printf("%d,%s\n",stu[i].score,stu[i].name); }5.7#include<stdio.h>main(){ int a[3][3],i,j,m,n,o,p;printf("Please input a 3*3 shuzu:\n");for (i=0;i<=2;i++)for (j=0;j<=2;j++)scanf("%d",&a[i][j]);for (i=0;i<=2;i++){ m=(a[i][0]>a[i][1])? a[i][0]:a[i][1];n=(m>a[i][2])? m: a[i][2];}for (j=0;j<=2;j++){ o=(a[0][j]<a[1][j])? a[0][j]:a[1][j];p=(o<a[2][j])? o: a[2][j];}if (n==p)printf("Andian is %d\\n",p);elseprintf("There is no andian.\\n"); }5.8#include <stdio.h>void main(void){ int a[4][3],b[3][4],i,j;for(i=0; i<4; i++){ for(j=0; j<3; j++)scanf("%d",&a[i][j]);}for(i=0; i<4; i++){printf("\n");for(j=0; j<3; j++)printf("%5d ",a[i][j]);}for(i=0; i<4; i++){for(j=0; j<3; j++)b[j][i]=a[i][j];}printf("\n");for(i=0; i<3; i++){printf("\n");for(j=0; j<4; j++)printf("%5d ",b[i][j]);}5.9#include <stdio.h>#include<math.h>void main(void){ char str[6];int i,j=0,m=0,n=0;gets(str);while(str[j]!='\0') j++;for(i=j-1;i>=0;i--){m=(str[i]-'0')*(pow(8,j-i-1));n+=m;}printf("shijinzhi %d",n);}5.10#include <stdio.h>void main(void){char input1[100];int i,num=0,blank=0;printf("Please input a row character:\n");gets(input1);/*test the first row*/for(i=0; i<100; i++){if(input1[i]=='\0')goto Loop;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)num++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)num++;else if (input1[i]==32)blank++;}Loop: printf("Character:%d\nBlank:%d\n",num,blank);}第六章一、选择题1.D :p中记录的是a的地址,*p访问地址a的值2.D :指针数组3.D:指针可以进行是否相等判断,空指针可以进行指针变量初始化,指针可以偏移;4.C:5.C、D:a[5]不存在,若*&a[4]则正确;C,D正确;6.D:7.B:8.B:二、填空题1.*(p+3) 2 222.cdefgbcdefgabcdefg73.6385三、程序分析题1.p = s[0] ;错误,应改为:p = s;或p = &s[0];2.int x , *p;错误,应改为:double x, *p;3.*p = x ;错误,应改为:p = &x ;4.声明顺序错误;应该改为:void main(void){int a;int *p = &a;a = 10;printf(“%d\n”,*p);}2.3 #include <stdio.h>#include <string.h>main(){char ch[2][5] = {"6937","8254"},*p[2]; int i,j,s=0;for(i=0;i<2;i++)p[i] = ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s = 10*s + p[i][j] - '0';printf("%d\n",s);}4.1#include <stdio.h>#include <string.h>main(){int count = 0;char str1[100],str2[100];char *p1,*p2;printf("please enter string 1:");gets(str1);printf("please enter string 2:");gets(str2);printf("str1:%s\n",str1);printf("str2:%s\n",str2);p1 = str1;p2 = str2;while(*p1!='\0'&&*p2!='\0'){if(*p1++==*p2++)count++;}printf("count:%d\n",count);}4.2#include <stdio.h>#include <string.h>main()int i,j,k;int a[3];int temp;printf("please enter array a[3]:"); scanf("%d%d%d",&a[0],&a[1],&a[2]);for(i=0;i<2;i++){k = i;for(j= i+1;j<3;j++){if(a[j]<a[i])k = j;}if(k!=i){temp = a[i];a[i] = a[k];a[k] = temp;}}for(i=0;i<3;i++)printf("%d\t",a[i]);printf("\n");}4.3#include <stdio.h>#include <string.h>#define N 100main(){char s1[N], s2[N],*p;int m;printf("please enter string1:");gets(s1);p = s1;printf("enter m:");scanf("%d",&m);strcpy(s2,p+m);printf("string2:%s\n",s2);}4.4#include <stdio.h>#include <string.h>main(){char s[100]="iuiui012asdd90k890y098kkkk1234",*p; char data[100][100]={{0}};int count=0;int i;p = s;/*printf("please enter a string:");gets(p);*/printf("sssss:%s\n",s);while(*p!='\0'){i=0;while(*p>='0'&&*p<='9'){data[count][i] = *p;i++;p++;}if(i!=0)count++;p++;}printf("count:%d\n",count);for(i=0;i<count;i++)printf("%s\n",data[i]);}4.5#include <stdio.h>#define SIZE 4main()int data[SIZE][SIZE],i,j,d;int max,m=0,n=0;for(i=0;i<SIZE;i++){for(j=0;j<SIZE;j++){scanf("%d",&data[i][j]);}}for(i=0;i<SIZE;i++){for(j=i+1;j<SIZE;j++){d = data[i][j];data[i][j] = data[j][i];data[j][i] = d;}}max = data[0][0];for(i=0;i<SIZE;i++){printf("\n");for(j=0;j<SIZE;j++){printf("%4d",data[i][j]);if(data[i][j]>=max){max = data[i][j];m = i;n = j;}}}printf("\nmax:%4d m:%d n:%d\n",max,m,n);}4.6#include <stdio.h>#include <string.h>main(){char *p[] = {"test","capital","index","large","small"}; char **pstr = p;int a,b,n = 5;char *temp;for(a=0;a<n-1;a++){for(b=a+1;b<n;b++){if(strcmp(pstr[a],pstr[b])>0){temp = pstr[a];pstr[a] = pstr[b];pstr[b] = temp;}}}for(a=0;a<n;a++)printf("%s\n",pstr[a]);}4.7#include <stdio.h>#include <string.h>main(){char s[100],temp;char *p = s;int i,length;printf("please enter a string: ");gets(s);while(*p++!='\0');length = p - s -1;printf("string length:%d\n",length);for(i=0;i<length/2;i++){temp = s[i];s[i] = s[length-i-1];s[length-i-1] = temp;}printf("%s\n",s);}第七章一,选择题1.A2.D3.B4.D5.C6.A7.B二.程序填空题1.(1) a[k](2) a[k](3) a[k]2.(1) a[i](2) j(3) i+1或6三.改错题1.#include<stdio.h>#include<string.h>void swap(char *,char *); /*此处有错误,函数声明时要加分号*/main(){char a[80],b[80],c[80];scanf("%s%s%s",a,b,c); /*此处有错误,a,b,c分别为数组a[80],b[8],c[80]的首地址*/ if(strcmp(a,b)>0) swap(a,b); /*此处有错误,字符串比较应该使用strcmp函数*/if(strcmp(b,c)>0) swap(b,c); /*此处有错误,原因同上*/if(strcmp(a,b)>0) swap(a,b); /*原算法不能实现排序,需要添加此语句*/printf("%s\n%s\n%s\n",a,b,c);}7.3.1#include <stdio.h>#include <string.h>void swap(char *pstr1,char *pstr2){char p[80];strcpy(p,pstr1);strcpy(pstr1,pstr2);strcpy(pstr2,p);}main(){char a[80]="ccc",b[80]="bbb",c[80]="aaa";/* scanf("%s%s%s",a,b,c); */if(strcmp(a,b)>0)swap(a,b);if(strcmp(b,c)>0)swap(b,c);if(strcmp(a,b)>0)swap(a,b);printf("%s\n%s\n%s\n\n\n",a,b,c);}7.4.1#include <stdio.h>int SquSum(int,int);main(){int a,b;int c;printf("enter 2 integer:");scanf("%d%d",&a,&b);c = SquSum(a,b);printf("a=%d b:%d a2+b2=%d\n",a,b,c); }int SquSum(int x,int y){int z;z = x*x+y*y;return z;}7.4.2#include <stdio.h>int GongYueShu(int,int);int GongBeiShu(int,int);{int a,b;int gbs,gys;printf("enter 2 integer:");scanf("%d%d",&a,&b);gys = GongYueShu(a,b);gbs = GongBeiShu(a,b);if(gys<0)printf("There has not gong yue shu!!!!!!\n"); elseprintf("max gong yue shu:%d\n",gys); printf("min gong bei shu:%d\n",gbs);}int GongYueShu(int x,int y){int i,gys=-1,min;min = x;if(x>y)min = y;for(i=2;i<=min;i++){if((x%i==0)&&(y%i==0))gys = i;}return gys;}int GongBeiShu(int x,int y){int i,gbs,max;max = x;if(y>x)max = y;for(i=max;i<=x*y;i++){if((i%x==0)&&(i%y==0)){gbs = i;break;}return gbs;}7.4.4#include <stdio.h>#include <string.h>void Delete_Ch(char *,char);main(){char str[80],ch;printf("please a string:");gets(str);printf("please a char:");scanf("%c",&ch);Delete_Ch(str,ch);printf("%s\n\n",str);}void Delete_Ch(char *p,char ch){while(*p){if(*p==ch){strcpy(p,p+1);}elsep++;}}7.4.5#include <stdio.h>int Is_ShuShu(int); /* return 0:shushureturn -1:no shushu*/main(){int a,ret;scanf("%d",&a);ret = Is_ShuShu(a);if(ret==0)printf("%d is a shushu!!!\n",a);elseprintf("%d is not a shushu\n",a);}int Is_ShuShu(int x){int i;for(i=2;i<x/2;i++){if(x%i==0)return -1;}if(i>=x/2)return 0;}7.4.6#include <stdio.h>#include <string.h>void StrCat(char *s1,char *s2){while(*s1!='\0')s1++;while(*s2!='\0'){*s1 = *s2;s1++;s2++;}*s1='\0';}main(){char a[200]="123456789",b[100]="ABCDEFG"; printf("pls enter string 1:");gets(a);gets(b);StrCat(a,b);printf("%s\n\n",a);}7.4.7#include <stdio.h>#include <string.h>void Stat(char *s,int *ch,int *dig,int *spa,int *oth){while(*s!='\0'){if(((*s>='a')&&(*s<='z'))||((*s>='A')&&(*s<='Z')))(*ch)++;else if((*s>='0')&&(*s<='9'))(*dig)++;else if(*s == ' ')(*spa)++;else(*oth)++;s++;}}main(){char a[200];int ch=0,dig=0,spa=0,oth=0;printf("pls enter a string :");gets(a);Stat(a,&ch,&dig,&spa,&oth);printf("ch:%d dig:%d spa:%d oth:%d",ch,dig,spa,oth); }7.4.8#include <stdio.h>#include <string.h>void reverse(char *s)if(*s){}main(){char s[] = "abcde"; reverse(s);puts(s);}7.4.9#include <stdio.h>#include <string.h>paixu(int *p,int n,int flag) {int i,j,m;int temp;for(i=0;i<n-1;i++) {m = i;for(j=i+1;j<n;j++){if(flag == 1){if(p[j]>p[m])m = j;}else{if(p[j]<p[m])m = j;}}if(m!=i){temp = p[i];p[i] = p[m];p[m] = temp;}}}main(){int a[20];int n,i;int flag;printf("please enter n(<20):"); scanf("%d",&n);getchar();printf("please enter array a:");for(i=0;i<n;i++)scanf("%d",&a[i]);getchar();printf("please enter paixu flag:\n"); printf("\t1:degression\n");printf("\t0:increasion\t:");scanf("%d",&flag);paixu(a,n,flag);printf("array a is:");for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n\n");}。
华中科技大学2003-2006级信息学院《C语言程序设计》考试试题及答案(DOC)

2003级信息学院《C语言程序设计》考试试题系班级姓名学号成绩一. 判断下列语句或程序的对错。
(“×”表示错,“√”表示对)(10分)1int x=y=z=20; ( ×) y,z需要在前定义2 #define M 50; ( ×) 不能有分号3 printf(“%\t”,(40,50,60)); ( √)4float a[100],*p;p=a++; ( ×) 数组名是地址常量,不能做++操作5char str[20];str[20]=0; ( ×) str[20]单元不可用6int data[4]={0,1,2,3,4}; ( ×) 0,1,2,3,4是5个元素,与data[4]不匹配7int x=’\014’; ( √)8int xyz.1=2; ( ×) xyz.1不是合法的标识符(变量名)9char *p=”c:\test\prg.c”; ( ×) 修改为c:\\test\\prg.c10int *p;*p=20; ( ×) 指针不能用常量进行赋值二. 计算下列表达式的值(10分)设unsigned int a=15,b=21,c=5,d=1;float f;(1) f=b/c ( 4.0 ) b/c是整数除,先得到4,然后赋值给f(2) !(a+b)+c-1&&b+c/2 ( 1 )(3) a^b+b&0x55+c<<3|015 ( 0x000f )(4) d*=c--%b++ ( 5 )(5) a%=(c%=2) ( 0 )三.程序改错(10分)1从键盘上输入三个字符串,然后按字典(从小到大)顺序进行输出# include <stdio.h># include<string.h>void swap(char *,char *);//函数声明需要分号结束main(){char a[80],b[80],c[80];scanf(“%s%s%s”,&a,&b,&c); //去掉&号,数组名即表示地址if(a>b)swap(a,b); strcmp(a,b)>0 a,b比较需要用字符串比较函数if(b>c)swap(b,c); strcmp(b,c)>0 b,c比较需要用字符串比较函数printf(“%s\n%s\n%s\n”,a,b,c);}void swap(char *pstr1,char *pstr2){char *p; //char p[80];p=pstr1; //strcpy(p,pstr1);字符串赋值需要用拷贝函数pstr1=pstr2; //strcpy(pstr1,pstr2);pstr2=p; //strcpy(pstr2,p);}(2)求某班30个学生数学成绩的最高分和平均分.# include <stdio.h>flaot process(float *p1,int n,int *p2); 添加函数声明main(){float a[30],aver;int ;for(m=0;m<30;m++)scanf(“%f”,&a[m]);max=process(a,30,&aver);pr intf(“max=%f,ave=%f\n),max,aver);}float process(float *p1,int n,int *p2){char x;int temp; //float temp 与函数返回类型匹配for(x=0;x<=n;x++) //for(x=0;x<n;x++) 不能要等号{if (p1[x]>temp)temp=p1[x];*p2+=p1[x];}p2=p2/n; //*p2=*p2/n;return temp;}四.程序填空(1)有一分数系列:2/1,3/2,/5/3,8/5,13/8,21/13……求出这数列的前50项和# include <stdio.h>main(){int m;float__ ________; // t,s=0,a=2,b=1for(m=1;___ _______;m++) //m<=50{s=s+a/b;t=a;a=_a+b_____;b=_t_;}printf(“sum=%f\n:,s);(2)按如图所示格式打印杨辉三角形的前10行11 11 2 11 3 3 11 4 6 4 1………main(){int m,n,a[10][10];for(m=0;m<10;m++){a[m][0]=1;__________________; a[m][m]=1;}for(__m=2___;m<10;m++)for(___n=1____;__n<m__________;n++)a[m][n]=a[m-1][n-1]+a[m-1][n];for(m=0;m<10;m++){for(n=0;__n<=m_____________;n++)printf(“%6d”,a[m][n]);_printf(“%5d”,a[m][n]);}}五.写输出结果(1)#include <stdio.h>void main(){int m,n,p,s;s=0;for(m=1;m<=4;m++){for(n=1;n<=m;n++){ p=1;for(n=1;n<=m;n++)p=p*n;}s=s+p;}printf(“s=%d\n”,s);S = 33; //1!+2!+3!+4!;(2)# include <stdio.h>void auto_static();int g_val;main(){int m;for(m=0;m<5;m++)auto_static();}void auto_static(){int au=0;static int st=0;printf(“au=%d,st=%d,g_val=%d\n”,au++,++st,g_val++);}au=0,st=1,g_val=0au=0,st=2,g_val=1au=0,st=3,g_val=2au=0,st=4,g_val=3au=0,st=5,g_val=4(3)# include <stdio.h>main(){int i,j,a[][3]={2,4,6,1,2,3};int *p[2]={a[0],a[1]};for(i=0;i<2;i++){for(j=0;j<3;j++)printf(“%3d\t”,*(p[i]+j));printf(“\n”);}}2 4 61 2 3(4)# include <stdio.h># include <string.h>struct person{char name[20];int count;};void main(){struct person leader[3]={{“li”,0},{“zhang”,0},{“wang”,0}}; char name[20],m,n;for(m=1;m<7;m++){scanf(“%s”,name);for(n=0;n<3;n++)if(!strcmp(name,leader[j].name)){leader[j].count++;break;}}printf(“\n”);for(m=0;m<3;m++){printf(“%s:%d\n”,leader[m].name,leader[m].count);}}当程序运行时,键入情况如下:liwangleiliwangzhang写出程序的输出结果。
华中科技大学级C语言程序设计考试经典试卷复习资料

华中科技大学10级《C语言程序设计》考试试卷课程性质:必修使用范围:本科考试时间:年月日考试方式:闭卷学号______________专业_______班级____姓名___________成绩____一、选择题(每小题2分,共20分)( A )(1)若x、y、j和k都是int型变量,则计算表达式x=( k=32,j=6, i=4)后,x的值为。
A)4 B)16 C)32 D)52( B )(2)C语言中标识符只能由字母、数字和下划线组成,且第一个字符。
A)必须为字母 B)必须为字母或下划线C)必须为下划线 D)可以是字母、数字和下划线中任一种字符( D )(3)下面四个选项中,均是正确的数值常量或字符常量的选项是。
A)0.0 0f 8.9e '&' B)"a" 3.9e-2.5 1e1 '\"'C)'3' 011 0xFF00 0a D)+001 0xabcd 2e2 50( B )(4)已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是。
A)a=a*3=2 B)a+=a-=(b=4)*(a=3)C)x+y=-3*a D)y=float(i)( A )(5)若以下变量均是整型,且num=sum=5;则计算表达式num++,sum++,++num后num的值为。
A)7 B)8 C)9 D)10( B )(6)在C语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量 B)整型常量或整型表达式C)整型表达式 D)任何类型的表达式( C )(7)以下能对一维数组a进行正确初始化的语句是。
A)int a[10]={0,0,0,0,0} B)int a[10]={ };C)int a[ ]={0}; D)int a[10]={10*1};/*各元素值为1*/( B )(8)下面程序(注:每行程序前面的数字表示行号)。
C语言程序设计试题试题及答案

C语言程序设计试题试题及答案C语言程序设计试卷,C++语言程序设计试题及答案一、单项选择题(每题1分,共20分)1.C语言规定:在一个源程序中,main函数的位置(C)。
A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后2.下面四个选项中,均是合法浮点数的选项是(B)。
A.+1e+15e-9.403e2B.-.6012e-4-8e5C.123e1.2e-.4+2e-1D.-e3.8e-45.e-03.若a=-14,b=3,则条件表达式a<ba:b+1的值为(a)。
< bdsfid="75" p=""></ba:b+1的值为(a)。
<>A.-14B.-13C.3D.44.已知:intn,i=1,j=2;执行语句n=i<ji++:j++;则i和j的值是(c).< bdsfid="81" p=""></ji++:j++;则i和j的值是(c).<>A.1,2B.1,3C.2,2D.2,35.为了判断两个字符串s1和s2是否相等,应当使用(D)A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s2))D.if(strcmp(s1,s2)==0)6.以下正确的描述是(B)。
A.函数的定义可以嵌套,但函数的调用不可以嵌套。
B.函数的定义不可以嵌套,但函数的调用可以嵌套。
C.函数的定义和函数的调用均不可以嵌套。
D.函数的定义和函数的调用均可以嵌套。
7.在C语言中,下面对函数不正确的描述是(D)。
A.当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。
B.允许函数递归调用。
C.函数形参的作用范围只是局限于所定义的函数内。
D.子函数必须位于主函数之前。
8.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是(A)。
C语言全部章节习题集及答案

《C语言程序设计》1 C语言概述一、单项选择题第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有32个关键字和9种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。
5、系统默认的 C 语言源程序文件的扩展名是 .c,经过编译后生成的目标文件的扩展名是 .obj,经过连接后生成的可执行文件的扩展名是.exe 。
6、C 语言的标识符只能由字母、数字和下划线三种字符组成。
第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。
华中科技大学历年考研真题

华中科技大学数学系数学分析1997,2000——2007(2004有答案)数值分析1999,2001——2002高等代数1997——2002,2004——2007概率统计2001——2002综合课程(应用数学、计算数学、概率统计专业)2003C语言程序设计(数学系计算数学专业)2002常微分方程2001——2002数理方程与泛函分析2001——2002专业英语翻译(概率论与数理统计、应用数学、计算数学专业)2006物理系数学(含高等数学线性代数)(物理系各专业)2007数学(物理类)2001,2003——2006数学(工科)(单考)2005数学(工科各专业)2003数学(理、工科类)(单)2002数学(单考)(工科各专业)2004数学(理工科)2006数学(理工类)(单考)2007高等数学(物理系)2002量子力学2001,2002,2003,2004,2005,2006(第1种),2006(第2种),2007统计物理2001——2002电动力学2001力学与电磁学2001——2004化学系物理化学2000——2007(2000——2002有答案)化学综合2007化工基础2007生物化工基础2007有机化学(化学各专业、结构工程、环境工程、生物化工专业)2000(2000有答案)有机化学(化学各专业、生物化工、材料加工工程、结构工程等专业)2001(2001有答案)有机化学(化学系各专业、环境科学专业)2002(2002有答案)有机化学(化学各专业)2003(2003有答案)有机化学(化学各专业、材料加工、环境化学专业)2004(2004有答案)有机化学(化学各专业、生物化学与分子生物学、生物信息技术、生物制药工程专业)2005有机化学(B卷)(应用化学等专业)2002有机化学(含高分子化学)(化学各专业及其他相关专业)2006有机化学(环境科学专业)2005无机化学2001——2002,2004——2005无机及分析化学2006无机与分析化学2003分析化学(分析化学、高分子化学与物理专业)2005分析化学(分析化学、高分子化学专业)2004分析化学(化学类各专业)2002分析化学(环境科学专业)2002——2005分析化学(环境科学、能源与环境工程专业)2006分析化学(有机化学、高分子化学与物理、环境工程专业)2001高分子化学2002——2003,2005——2006高分子化学(二)2004——2005高分子化学(一)2004高分子化学及物理2001——2002机械科学与工程学院机械设计1997——2002(1997——2001有答案)机械设计基础2002——2007机械原理1999——2002机械原理及机械零件2001液压传动2000——2002液压流体力学2000——2001画法几何与机械制图2001机械工程控制基础2006信号与线性系统1996——2002,2006——2007(1997有答案)信号与系统2002——2006控制理论(化工过程机械专业)2001控制理论(经典控制理论、现代控制理论)(控制理论与控制工程、检测技术及自动化装置、系统工程、系统信息化技术、系统分析与集成、建筑技术科学、模式识别与智能系统、机械制造及其自动化、机械电子工程、机械设计及理论、精微制造工程、数字化设计及制造、设计艺术学专业)2005控制理论(经典控制理论、现代控制理论)(控制系所有专业、模式识别与智能系统、建筑技术科学专业)2006控制理论(控制理论与控制工程、检测技术及自动化装置、系统工程、机制、机电、车辆、材料加工、轮机工程、模式识别、导航、制导专业)2002(2002有答案)控制理论(控制系、图象所各专业及生物物理学、机械制造及自动化、机械电子工程等专业)2001(2001有答案)控制理论(自控系各专业、机电学院各专业、模式识别与智能控制、内燃机专业)1996(1996有答案)控制理论(自控系各专业、机械学院、交通学院有关专业、制冷及低温工程、模式识别与智能控制专业)1998(1998有答案)控制理论(自控系各专业、机械学院及其他有关专业)1997(1997有答案)控制理论(自控系各专业、机械学院有关专业、制冷及低温工程、生物医学工程、模式识别与智能系统、电力电子与电力传动、轮机工程、动力机械及工程专业)1999(1999有答案)控制理论(自控系各专业、机械制造、机械电子、材料加工、动力机械、模式识别、制冷、轮机工程、车辆工程等专业)2000(2000有答案)控制理论(自控系各专业、模式识别、机电控制等专业)1995(1995有答案)控制理论基础(船舶与海洋工程专业)2007自动控制理论(电机与电器、电力系统及其自动化、电力电子与电力传动专业)2001自动控制理论(电机与电器、电力系统及其自动化、高电压与绝缘技术、电力电子与电力传动、电工理论与新技术、脉冲功率与等离子体、动力工程及其自动化专业)2005自动控制理论(电机与电器、电力系统及其自动化专业)2000自动控制理论(电力系统及其自动化、水力发电工程专业)1998自动控制理论(电气工程所有专业、动力机械及工程专业)2004自动控制理论(电气工程所有专业、制冷及低温工程专业)2002自动控制理论(电气学院所有专业)2006自动控制理论(电气学院所有专业、能源学院部分专业)2003自动控制理论(水利水电工程、电机与电器、电力系统及其自动化专业)1999 自动控制理论(水利水电工程、系统分析与集成专业)2003自动控制理论(水利水电工程专业)2001,2004——2007自动控制原理(水文学及水资源、水利水电工程、系统分析与集成专业)2002 自动控制原理(系统分析与集成、控制科学与工程、机械工程、仪器科学与技术、建筑技术与科学专业)2007电子技术基础(测试计量技术及仪器专业)2001电子技术基础(电磁场与微波技术、电路与系统、电力电子与电力传动、微电子学与固体电子学、半导体芯片系统与工艺、软件工程、模式识别与智能系统、信息安全、光学工程、光电信息工程、物理电子学、机械工程、仪器科学与技术专业)2007电子技术基础(电机与电器、电力电子与电力传动、微电子学与固体电子学、动力机械及工程、轮机工程、车辆工程专业)2000电子技术基础(电机与电器、电力电子与电力传动专业)1999电子技术基础(电机与电器、电力系统及其自动化、电力电子与电力传动、电工理论与新技术、轮机工程等专业)2001电子技术基础(电机与电器、电力系统及其自动化、电力电子与电力传动、电工理论与新技术、轮机工程等专业)2001电子技术基础(电气学院各专业、模式识别、精密仪器、测试计量、光学工程、物理电子学、微电子学专业)2002电子技术基础(光学工程、物理电子学、固体力学、流体力学、微电子学与固体电子学、模式识别与智能系统专业)1999电子技术基础(光学工程、物理电子学、光电信息工程、机械学院各专业)2005 电子技术基础(光学工程、物理电子学、机械制造及其自动化、机械电子工程、机械设计及理论、精微制造工程专业)2004电子技术基础(光学仪器、物理电子学与光电子学、固体力学、流体力学、电子材料与元器件、模式识别与智能控制、内燃机、汽车设计制造专业)1998电子技术基础(光学仪器、物理电子学与光电子学、固体力学、汽车设计制造、电子材料与元器件、模式识别与智能控制、内燃机专业)1997电子技术基础(化工过程机械专业)2005——2006电子技术基础(精密仪器及机械专业)2003电子技术基础(轮机工程、车辆工程、精密仪器及机械、测试计量技术及仪器专业)2005电子技术基础(生物医学工程、生物物理学、生物材料与组织工程专业)2005——2006电子技术基础(生物医学工程、生物物理学专业)2003——2004电子技术基础(生物医学工程专业)2002电子技术基础(微电子学与固体电子学、半导体芯片系统设计与工艺、电力电子与电力传动、模式识别与智能系统专业)2005电子技术基础(微电子学与固体电子学、半导体芯片系统设计与工艺、电力电子与电力传动、模式识别与智能系统专业)2006电子技术基础(微电子学与固体电子学、电力电子与电力传动、导航、制导与控制专业)2003电子技术基础(微电子学与固体电子学、电力电子与电力传动、导航、制导与控制专业)2004电子技术基础(物理电子学、光信息科学与技术、光学工程专业)2006电子技术基础(物理电子学、光学工程、模式识别与智能系统、流体力学专业)2000电子技术基础(物理电子学、光学工程、模式识别与智能系统专业)2001电子技术基础(物理电子学与光电子学专业)1995数据结构1999——2001,2006——2007数据结构及程序设计技术2004——2006数据结构与算法分析2006——2007数据库系统原理1996——2002,2004计算机组成原理(计算机科学与技术、模式识别与智能系统、机械工程、仪器科学与技术、建筑技术科学专业)1992——2002,2006——2007(另有模拟试题一份)计算机组成原理(生物医学工程、生物信息技术专业)2007C语言程序设计(计算机软件与理论专业)2001——2002操作系统1995——2002程序设计基础1995——2002程序设计语言及编译1999——2002互换性与技术测量2000——2007工业设计史2004——2005工业设计史论2006——2007工业设计综合考试2004——2007微机原理(8086)及应用(控制科学系各专业、模式识别与智能系统、力学各专业、材料加工工程专业)2000(2000有答案)微机原理(8086)及应用(控制科学与工程系各专业、模式识别与智能系统专业)2001(2001有答案)微机原理(8086)及应用(自动控制工程系各专业、模式识别与智能系统、流体力学、工程力学专业)1999(1999有答案)微机原理(电信系各专业、电子材料与元器件专业)1996(1996有答案)微机原理(电信系各专业、电子材料与元器件专业)1998微机原理(电信系各专业、微电子学与固体电子学专业)1999微机原理(二)(光学工程、物理电子学专业)2002微机原理(光学工程、物理电子学专业)1999——2002微机原理(光学仪器、物理电子学与光电子学专业)1997——1998(1997有答案)微机原理(软件工程专业)2007微机原理(三)(电路与系统专业)2002微机原理(通信与电子系统、信号与信息处理、电路与系统、电磁场与微波技术、电子材料与元器件专业)1997微机原理(一)(电机与电气、电力系统及其自动化、高电压与绝缘技术、电力电子与电力传动、电工理论与新技术专业)2002微机原理及微机控制技术(自动控制理论及应用、工业自动化、模式识别与智能控制专业)1996——1998(1997——1998有答案)微机原理及应用(材料加工工程、数字化材料成形专业)2005——2006微机原理及应用(材料加工工程专业)2003——2004微机原理及应用(电机与电器、电力系统及其自动化、电力电子与电力传动专业)2001微机原理及应用(二)(电力电子与电力传动、微电子学与固体电子学专业)2002 微机原理及应用(机械制造及其自动化、机械电子工程专业)2001微机原理及应用(控制科学与工程系各专业、模式识别与智能系统专业)2001 微机原理及应用(软件工程专业)2006微机原理及应用(三)(控制理论与控制工程、系统工程、固体力学、模式识别、检测技术及自动化装置、工程力学、导航、制导专业)2002(2002有答案)微机原理及应用(水利水电工程、轮机工程、微电子学与固体电子学、供热、供燃气通风及空调工程专业)2001微机原理三(电路与系统专业)2002微机原理与接口技术(生物医学工程专业)2004微机原理与应用(机械制造及其自动化、机械电子工程、车辆工程、精密仪器及机械、测试计算技术及仪器、材料加工工程、轮机工程专业)2002微机原理与应用(机械制造及其自动化、机械电子工程等专业)2001结构力学(固体力学、工程力学专业)2001——2002结构力学(结构工程、道路与桥梁工程专业)2004结构力学(结构工程、桥梁隧道工程、防灾减灾及防护工程专业)2005——2006 结构力学(结构工程、桥梁隧道与工程专业)2002——2003结构力学(结构工程、岩土工程专业)1997——2000(1999有答案)结构力学(结构工程专业)1996,2001结构力学(市政工程、道路与铁道工程专业)2001电动力学2001综合考试(含C语言程序设计、数据结构)(计算机应用技术专业)2001综合考试(含计算机系统结构、计算机网络、数据结构)(计算机系统结构专业)2002综合考试(计算机应用技术专业)(数据结构、C语言程序设计)1999——2001 通信原理(电路与系统、通信与信息系统、信号与信息处理专业)2001通信原理(通信与信息系统、信号与信息处理专业)2002通信原理(物理电子学、光学工程专业)2001汽车理论2004——2006汽车理论和设计2001——2002汽轮机原理2001——2002发动机原理2001综合考试(1)(脉冲与数字电路、微机、高频电路)(电信系各专业、模式识别与智能系统专业)2000综合考试(含程序设计技术、数据结构、计算机组成原理、离散数学)(计算机学院各专业、机械学院各专业、模式识别与智能系统专业)2003综合考试(含数字电路、微机原理)(通信与信息系统、信号与信息处理、模式识别与智能系统专业)2002综合考试二(含通信原理、高频电子线路)(电信系各专业、模式识别与智能系统专业)2000综合考试一(传感器原理、数字电子技术)(控制、机械各专业、建筑技术科学、模式识别专业)2005综合考试(含数据结构、计算机组成原理、离散数学)2004——2005光电检测技术2001——2003,2005综合考试(含信号与线性系统、数字信号处理)2005综合考试(一)(含信号与线性系统、数字信号处理)2003——2004(2004有答案)专业英语翻译(计算机体系结构、软件与理论、应用技术、信息安全专业)2006 专业英语翻译(模式识别与智能系统专业)2006英语专业翻译(机械工程、工业工程、仪器科学与技术、管理科学与工程专业)2006材料科学与工程学院量子力学2001,2002,2003,2004,2005,2006(第1种),2006(第2种),2007物理化学2000——2007(2000——2002有答案)计算机图形学2002化学综合2007化工基础2007生物化工基础2007塑性成形原理2002有机化学(化学各专业、结构工程、环境工程、生物化工专业)2000(2000有答案)有机化学(化学各专业、生物化工、材料加工工程、结构工程等专业)2001(2001有答案)有机化学(化学系各专业、环境科学专业)2002(2002有答案)有机化学(化学各专业)2003(2003有答案)有机化学(化学各专业、材料加工、环境化学专业)2004(2004有答案)有机化学(化学各专业、生物化学与分子生物学、生物信息技术、生物制药工程专业)2005有机化学(B卷)(应用化学等专业)2002有机化学(含高分子化学)(化学各专业及其他相关专业)2006有机化学(环境科学专业)2005无机化学2001——2002,2004——2005无机及分析化学2006无机与分析化学2003分析化学(分析化学、高分子化学与物理专业)2005分析化学(分析化学、高分子化学专业)2004分析化学(化学类各专业)2002分析化学(环境科学专业)2002——2005分析化学(环境科学、能源与环境工程专业)2006分析化学(有机化学、高分子化学与物理、环境工程专业)2001高分子化学2002——2003,2005——2006高分子化学(二)2004——2005高分子化学(一)2004高分子化学及物理2001——2002材料成形原理2003——2007材料科学基础2002——2003,2005——2007材料学基础2001微机原理及接口技术(材料加工工程、数字化材料成形、环境科学与工程专业)2007微机及接口技术(生物医学工程、生物物理学专业)2001微机接口与技术(生物医学工程专业)2003微机原理及接口技术(生物医学工程专业)2002微机原理(8086)及应用(控制科学系各专业、模式识别与智能系统、力学各专业、材料加工工程专业)2000(2000有答案)微机原理(8086)及应用(控制科学与工程系各专业、模式识别与智能系统专业)2001(2001有答案)微机原理(8086)及应用(自动控制工程系各专业、模式识别与智能系统、流体力学、工程力学专业)1999(1999有答案)微机原理(电信系各专业、电子材料与元器件专业)1996(1996有答案)微机原理(电信系各专业、电子材料与元器件专业)1998微机原理(电信系各专业、微电子学与固体电子学专业)1999微机原理(二)(光学工程、物理电子学专业)2002微机原理(光学工程、物理电子学专业)1999——2002微机原理(光学仪器、物理电子学与光电子学专业)1997——1998(1997有答案)微机原理(软件工程专业)2007微机原理(三)(电路与系统专业)2002微机原理(通信与电子系统、信号与信息处理、电路与系统、电磁场与微波技术、电子材料与元器件专业)1997微机原理(一)(电机与电气、电力系统及其自动化、高电压与绝缘技术、电力电子与电力传动、电工理论与新技术专业)2002微机原理及微机控制技术(自动控制理论及应用、工业自动化、模式识别与智能控制专业)1996——1998(1997——1998有答案)微机原理及应用(材料加工工程、数字化材料成形专业)2005——2006微机原理及应用(材料加工工程专业)2003——2004微机原理及应用(电机与电器、电力系统及其自动化、电力电子与电力传动专业)2001微机原理及应用(二)(电力电子与电力传动、微电子学与固体电子学专业)2002 微机原理及应用(机械制造及其自动化、机械电子工程专业)2001微机原理及应用(控制科学与工程系各专业、模式识别与智能系统专业)2001 微机原理及应用(软件工程专业)2006微机原理及应用(三)(控制理论与控制工程、系统工程、固体力学、模式识别、检测技术及自动化装置、工程力学、导航、制导专业)2002(2002有答案)微机原理及应用(水利水电工程、轮机工程、微电子学与固体电子学、供热、供燃气通风及空调工程专业)2001微机原理三(电路与系统专业)2002微机原理与接口技术(生物医学工程专业)2004微机原理与应用(机械制造及其自动化、机械电子工程、车辆工程、精密仪器及机械、测试计算技术及仪器、材料加工工程、轮机工程专业)2002微机原理与应用(机械制造及其自动化、机械电子工程等专业)2001结构力学(固体力学、工程力学专业)2001——2002结构力学(结构工程、道路与桥梁工程专业)2004结构力学(结构工程、桥梁隧道工程、防灾减灾及防护工程专业)2005——2006 结构力学(结构工程、桥梁隧道与工程专业)2002——2003结构力学(结构工程、岩土工程专业)1997——2000(1999有答案)结构力学(结构工程专业)1996,2001结构力学(市政工程、道路与铁道工程专业)2001电动力学2001综合考试(材料加工工程专业)2001——2002陶瓷材料2005——2006陶瓷材料学2001——2002,2004金属材料2004金属材料学2001——2002金属塑性成形原理1997,1999,2001金属学及热处理2001——2002铸件形成理论2002铸件形成理论基础1998,2001铸造金属学及热处理1998,2001专业英语(材料学、纳米材料及技术专业)2006能源与动力工程学院传热学1999,2000,2001(第1种),2001(第2种),2003——2007(1999,2000,2001(第1种)有答案)锅炉原理2001——2002,2005流体机械原理2002内燃机原理2001——2002离心压缩机原理2001工程流体力学2002,2007结构力学(固体力学、工程力学专业)2001——2002结构力学(结构工程、道路与桥梁工程专业)2004结构力学(结构工程、桥梁隧道工程、防灾减灾及防护工程专业)2005——2006 结构力学(结构工程、桥梁隧道与工程专业)2002——2003结构力学(结构工程、岩土工程专业)1997——2000(1999有答案)结构力学(结构工程专业)1996,2001结构力学(市政工程、道路与铁道工程专业)2001不可压缩流体力学2001——2006低温原理与设备2000——2002(2000有答案)电工电子技术2001,2003电站锅炉原理2004化工原理2001,2005制冷原理与设备2001——2002热工自动化2002工程热力学2001(第1种),2001(第2种),2002——2006专业英语翻译(动力机械及工程专业)2006电气与电子工程学院电路理论(电力系统及其自动化、高电压与绝缘技术、电机与电器、电工理论与新技术、电力电子与电力传动、环境工程专业)2001——2003电路理论(电气工程、环境科学与工程专业)2007电路理论(电气工程学科所有专业、环境工程、机械制造及自动化、精密制造、数字化设计专业)2005电路理论(电气工程学科所有专业、环境工程等专业)2006电路理论(电气工程学科所有专业、机械制造及自动化、环境工程、机械电子工程、机械设计及其理论、精微制造工业等专业)2004电路理论(光学工程、物理电子学、控制理论与控制工程、检测技术与自动化装置、系统工程、模式识别与智能系统专业)2002电路理论(光学工程、物理电子学专业)1999——2001电路理论(物理电子学与光电子学、光学仪器专业)1998电磁场2002,2007电磁场与电磁波2001——2006电磁学与热学2005电机学2001——2002电力电子技术2000——2001电力电子学2001——2002电力系统分析1999——2002发电厂及电力系统1998高电压技术2001——2002高压电器2001电子器件2002力学与电磁学2001——2004英语(电力系统及其自动化、电力电子与电力传动、电工理论与新技术、电气信息检测技术专业)2006交通科学与工程学院交通工程2001——2002,2004交通工程学2003,2005——2007综合考试(轮机工程专业)2004高级语言程序设计(C语言)2001——2002城市道路规划与设计2002,2006——2007城市道路设计2001——2005船舶力学基础2007船舶设计原理2001——2002船舶原理2001——2002控制理论(化工过程机械专业)2001控制理论(经典控制理论、现代控制理论)(控制理论与控制工程、检测技术及自动化装置、系统工程、系统信息化技术、系统分析与集成、建筑技术科学、模式识别与智能系统、机械制造及其自动化、机械电子工程、机械设计及理论、精微制造工程、数字化设计及制造、设计艺术学专业)2005控制理论(经典控制理论、现代控制理论)(控制系所有专业、模式识别与智能系统、建筑技术科学专业)2006控制理论(控制理论与控制工程、检测技术及自动化装置、系统工程、机制、机电、车辆、材料加工、轮机工程、模式识别、导航、制导专业)2002(2002有答案)控制理论(控制系、图象所各专业及生物物理学、机械制造及自动化、机械电子工程等专业)2001(2001有答案)控制理论(自控系各专业、机电学院各专业、模式识别与智能控制、内燃机专业)1996(1996有答案)控制理论(自控系各专业、机械学院、交通学院有关专业、制冷及低温工程、模式识别与智能控制专业)1998(1998有答案)控制理论(自控系各专业、机械学院及其他有关专业)1997(1997有答案)控制理论(自控系各专业、机械学院有关专业、制冷及低温工程、生物医学工程、模式识别与智能系统、电力电子与电力传动、轮机工程、动力机械及工程专业)1999(1999有答案)控制理论(自控系各专业、机械制造、机械电子、材料加工、动力机械、模式识别、制冷、轮机工程、车辆工程等专业)2000(2000有答案)控制理论(自控系各专业、模式识别、机电控制等专业)1995(1995有答案)控制理论基础(船舶与海洋工程专业)2007自动控制理论(电机与电器、电力系统及其自动化、电力电子与电力传动专业)2001自动控制理论(电机与电器、电力系统及其自动化、高电压与绝缘技术、电力电子与电力传动、电工理论与新技术、脉冲功率与等离子体、动力工程及其自动化专业)2005自动控制理论(电机与电器、电力系统及其自动化专业)2000自动控制理论(电力系统及其自动化、水力发电工程专业)1998自动控制理论(电气工程所有专业、动力机械及工程专业)2004自动控制理论(电气工程所有专业、制冷及低温工程专业)2002自动控制理论(电气学院所有专业)2006自动控制理论(电气学院所有专业、能源学院部分专业)2003自动控制理论(水利水电工程、电机与电器、电力系统及其自动化专业)1999 自动控制理论(水利水电工程、系统分析与集成专业)2003自动控制理论(水利水电工程专业)2001,2004——2007自动控制原理(水文学及水资源、水利水电工程、系统分析与集成专业)2002 自动控制原理(系统分析与集成、控制科学与工程、机械工程、仪器科学与技术、建筑技术与科学专业)2007结构力学(固体力学、工程力学专业)2001——2002结构力学(结构工程、道路与桥梁工程专业)2004结构力学(结构工程、桥梁隧道工程、防灾减灾及防护工程专业)2005——2006 结构力学(结构工程、桥梁隧道与工程专业)2002——2003结构力学(结构工程、岩土工程专业)1997——2000(1999有答案)结构力学(结构工程专业)1996,2001结构力学(市政工程、道路与铁道工程专业)2001专业英语翻译(船舶与海洋结构物设计制造、轮机工程、交通工程专业)2006力学系材料力学(船舶与海洋结构物设计制造专业)2003——2004材料力学(船舶与海洋结构物设计制造、化工过程机械专业)2001——2002材料力学(船舶与海洋结构物设计制造、水下工程专业)2005——2006材料力学(固体力学、工程力学、材料加工工程专业)2001——2002材料力学(力学系所有专业)2002,2005——2006材料力学(岩土工程、道路与铁道工程、化工过程机械专业)2005——2006材料力学(岩土工程、道路与铁道工程专业)2003——2004材料力学(岩土工程专业)2001——2002材料力学一(固体力学、工程力学、动力机械及工程专业)2004理论力学1997——2006(1997——2001有答案)(另有《理论力学》考研复习内部资料,含理论力学课程考研基本要求、考研试题内容及题型的分析,10元。
C语言程序设计期末考试复习题及答案

C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
华中科技大学 2010级信息学院C语言程序设计考试试题A

级信息学院《C 语言程序设计》考试试题(A ) 一、判断下列语句或程序段的对错。
(“×”表示错,“√”表示对)(10分) (1) int x=0,y=x; ( ) (2) #define SIZE 10 ( ) int a[SIZE /2][SIZE]; (3) char *str ; str ="c\test"; ( ) (4) register int n; scanf(“%d ”,&n); ( ) (5) int x ,*px=&x ; float *p=px; ( ) (6) int (*pa)[8],a[6][8]; pa=*a++; ( ) (7) int x ,*px ; *px=&x; ( ) (8) int **pp,a[6][8]; pp=a; ( ) (9) float xyz.1=3; ( ) (10) int x =‘\x78’; ( ) 二、计算下列表达式的值(10分) 设unsigned int a=7, b=17, c=5, d=3; float f; (11) f =c/d; ( ) (12) (!(a+b)+c-1) | | (b+c/3) ( ) (13) (a&b)^( ~c | ~d) ( ) (14) f= (a-b>0 ? c/d : c%d ) ; ( ) (15) b=a++ , a%3 ( ) 三、程序改错(10分) 要求:不得改变程序框架,不得重写程序,无需文字说明,直接在代码上添加、删除和修改。
(16) 用指针的方法实现对输入的3个整数按从小到大的顺序输出显示 #include <stdio.h> void main(void) { int a,b,c;int *pa=&a,*pb=&b,*pc=&c;scanf("%d%d%d",&pa,&pb,&pc);院系________________班级________________姓名________________学号________________成绩________________if(*pa>*pb) swap( pa , pb);if(*pb>*pc) swap( pb , pc);printf("%d\t%d\t%d\n",*pa,*pb,*pc);}void swap(int *px,int *py){int *temp;temp =px;px =py;py =temp;}(17)统计N个字符串中大写字母和数字字符的个数#include <stdio.h>#define N 5void main(void){char string[N][80];char i;int CapitalCount , NumCount;for(i=1;i<=N;i++)scanf("%s",&string[i]);for(i=0;i<=N;i++)CapitalCount +=count(string[i],&NumCount);printf("CapitalCount=%d,NumCount=%d\n",CapitalCount,NumCount); }count(char *pstr , int *result){int temp,i;*result = temp=0;for(i=0 ; i<80 ; i++){if(pstr[i]>='A'&&pstr[i]<='Z')temp ++;if(pstr[i]>=0&&pstr[i]<=9)*result ++;}return temp;}四、程序填空(10分)(18)找N个字符串中最大字符串和最小字符串#include <stdio.h>#include <string.h>#define N 5char *GetMaxMinString( );char *GetMaxMinString( ){int a;char *max;;for(a=1;a<num;a++){if( )max =string[a];if( )*min =string[a];}return max;}void main(void){char string[N][80],*pmax,*pmin;int i;for(i=0;i<N;i++)gets(string[i]);pmax =GetMaxMinString( );printf("Max string is %s,Min string is %s\n",pmax,pmin);}(19)以下程序用二维数组保存多个字符串,用二级指针处理多个字符串的排序。
大学C语言程序设计考试试题及答案3套

C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
C语言程序设计试题及答案完整版

C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
C语言程序设计的试题及答案

C语言程序设计的试题及答案大家在考程序员时,C语言程序设计大家有了解吗?下面瑞文网小编为大家分享了C 语言程序设计的试题及答案,供大家参考。
第一章基础知识一、填空1. 每个 C 程序都必须有且仅有一个________ 函数。
2. C 语言程序开发到执行通常要经过 6 个阶段即编辑、预处理、________、链接、加载和执行。
3. 软件是程序,以及______、使用和维护所需要的所有文档。
4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6. C 语言是由________组成的。
7. C 语言的函数可分为主函数main、标准库函数和_________。
8. 一个函数是由两部分组成的,即:________和函数体。
9. 编译是将C 语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA) 、管理信息系统(MIS) 、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14. C 程序的执行均是由执行_________开始。
15. 函数体即为包含在{ }内的部分。
华中科技大学c程序设计考试题

1.c++系统预定了4个用于标准数据流的对象,下;正确答案:【D】分值:【1】;2.设有说明:charw;intx;floaty;正确答案:【D】分值:【1】;3.下列对析构函数的描述中,正确的是(____);C.析构函数的定义只能在类体内D.析构函数可以有;正确答案:【A】分值:【1】;4.下列定义数组的语句中正确CPP程序设计模拟考试 1--第2套试卷1.c++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是(____) A.cout B.cin C.cerr D.cset正确答案:【D】2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为(____) A.float B.char C.int D.double正确答案:【D】分值:【1】3.下列对析构函数的描述中,正确的是(____) A.一个类中只能定义一个析构函数 B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数正确答案:【A】分值:【1】4.下列定义数组的语句中正确的是(____)A.#define size 10 char str1[size],str2[size+2];B.char str[];C.i nt num['10'];D.int n=5; int a[n][n+2];正确答案:【A】分值:【1】5.关于this指针使用说法正确的是(____)A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B.保证基类私有成员在子类中可以被访问。
C.保证基类保护成员在子类中可以被访问。
D.保证基类公有成员在子类中可以被访问。
正确答案:【A】分值:【1】6.所谓多态性是指(____)A.不同的对象调用不同名称的函数B.不同的对象调用相同名称的函数C.一个对象调用不同名称的函数D.一个对象调用不同名称的对象正确答案:【B】分值:【1】7.派生类构造函数的执行顺序是先执行________ 的构造函数,然后执行成员对象的构造函数,最后执行________ 的构造函数。
C语言程序设计试题及答案多套

. 《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间 120 分钟一、基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序 B.子程序 C.函数 D.过程2.转换说明符%x的输出形式是()。
A.十进制 B.八进制 C.十六进制 D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “ ------------“) ;的正确说法是()。
A.循环体只执行一次 B.死循环C.循环体一次也不执行 D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’ + 3 的结果是()。
A.’A’ B.’D’的ASCⅡ码 C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符 B.19个字符 C.18个字符 D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B. while循环是先判断表达式后执行循环体语句C. do-while和for循环均是先执行循环体语句,后判断表达式D. for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束.C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
华中科技大学C语言期末考试题库试题及答案汇总

华中科技大学 C 语言期末考试题库试题及答案汇总1 .设int a=12 ,则执行完语句a+=a-=a*a 后,a 的值是__D____ 。
A、552 B 、264 C 、144 D 、-264知识点:算术表达式2 .以下变量x、y、z 均为double 类型且已正确赋值,不能正确表示数字式子x/(y*z) 的C 语言表达式是___A___ 。
A、x/y*z B 、x*(1/(y*z))C 、x/y*1/z D 、x/y/z知识点:算术表达式3 .若有定义:int a=8,b=5,c;, 执行语句c=a/b+0.4; 后,c 的值是__B____ 。
A、1.4 B 、1 C 、2.0 D 、2知识点:算术表达式4 .有如下程序main(){int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f%3.1f\n",a,c,f,x);}程序运行后输出结果是___B___ 。
A、1 65 1 6.5B 、1 65 1.5 6.5C 、1 65 1.0 6.5D 、2 65 1.5 6.5知识点:赋值表达式5 .若变量a、i 已正确定义,且i 已正确赋值,合法的语句是___B___ 。
A、a==1 B 、++i; C 、a=a++=5; D 、a=int(i);知识点:赋值表达式6 .若变量已正确定义并赋值,下面符合 C 语言语法的表达式是__B____ 。
A、a:=b+1 B 、a=b=c+2C 、int 18.5%3 D 、a=a+7=c+b知识点:赋值表达式7 .设变量x 为float 型且已赋值,则以下语句中能将x 中的数值保留到小数点后两位,并将第三位四舍五入的是__C____ 。
A、x=x*100+0.5/100.0B 、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0D、x=(x/100+0.5)*100.0知识点:赋值表达式8 .在一个 C 程序中___B___ 。
大学_C语言程序设计试卷及答案

C语言程序设计试卷及答案C语言程序设计试卷一、单项选择题(20分,每题2分)1.A2.A3.B4.A5.C6.B7.C8.A9.C 10.C二、填空题( 30分,每空2分)(1) 14(2) 1(3) b,c(4) a,c(5) a, b(6) 0(7) 函数说明(8) 函数名(9) 圆括号中的形式参数(10) 0(11) "C:\\TC\\LIB"(12) "C:\\TC\\LIB"(13) "He said:\"I\ m a student.\""(15) -t三、写出程序的运行结果(30分,每题10分)1. 362. efgh3. (1) 函数sub( )的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:product__=2的次数。
(注:非标准答案,表述相近既可)(2) 运行结果:sum0=1sum1=3sum2=7sum3=15四、编程(完形填空)(20分,每题10分)1.(1) 0(2) =(3) ||(4)(5) \n2.(7) \0(8) i++(9) str2[i]-str1[i](10) %dC语言程序设计试卷答案一、单项选择题(20分,每题2分)1.若整型变量a、b、c、d中的值依次为:1、4、 3、2。
则条件表达式(ab?a:b)(cd?c:d)的值是。
A)1 B)2 C)3 D)02.for(i=0;i10;i++)if(i〈=5) break;则循环结束后i的值为A)0 B)1 C)5 D)103.下面正确的字符常量是:A)“c” B)\\ C)W D)4.C语言中,运算对象必须是整型的运算符是:A)% B)/ C)__ D)+5.数字字符0的ASCII值为48,若有以下程序{char a=1, b=2;printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是。
C语言程序设计试题及答案解析

C语言程序设计试题第1、2、3章概述、类型、表达式一、选择题一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:()A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照执行的顺序排列D、其他函数可以任意,,主函数必须在最后答案:A下列四个叙述中,正确的是:()A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写答案:D下列四个叙述中,错误的是:()A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数答案:C下面不是C语言合法标识符的是:()A、abcB、5nC、_4mD、x3答案:B以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定非用main来表示答案:DC语言中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型答案:BC语言中能用八进制表示的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型答案:A下列属于C语言合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”答案:C在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double答案:A在C语言中(VC环境),一定是长整型常数的是:()A、0LB、4962710C、0412765D、0xa34b7fe答案:A若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定答案:B以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);答案:B设变量t为int型,下列选项中不正确的赋值语句是:()A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;答案:D在以下一组运算符中,优先级最高的是:()A、<=B、==C、%D、&&答案:C下列能正确表示a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=0答案:C下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)答案:B设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)答案:A已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”答案:C表达式17%4 /8的值为:()A、0B、1C、2D、3答案:A语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:()A、无输出B、结果不确定C、-1D、1答案:D一个可执行的C程序的开始执行点是:()A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数答案:C组成C语句的一个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号答案:D若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()A. intB. longC. floatD. double答案:D下述是C语言中有关变量定义的几个说法,正确的是:()A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化答案:D与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z答案:C当代电子计算机能够自动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是( 知识点:程序的基本概念;难度系数:2;答案:C )以下叙述中最准确的是:()A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合( 知识点:程序的基本概念;难度系数:2;答案:D )关于计算机程序设计,以下描述最准确的是:()A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序( 知识点:程序设计的基本概念;难度系数:1;答案:C )目前编写计算机程序一般采用的是:()A.机器语言B.汇编语言C.高级语言D.英语( 知识点:程序设计的基本概念;难度系数:1;答案:C )设计一个计算机程序最基本的工作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是( 知识点:算法的基本概念;难度系数:1;答案:C )算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可行性D.确定性( 知识点:算法的基本概念;难度系数:3;答案:B )下述哪一个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套( 知识点:结构化程序设计的概念;难度系数:2;答案:D )C语言是一种:()A.机器语言B.汇编语言C.高级语言D.以上都不是( 知识点:C语言的特点;难度系数:1;答案:C )C语言源程序的扩展名为:()A..exe B..c C..obj D..cpp( 知识点:C语言的特点;难度系数:1;答案:B )C程序编译后最终产生(即计算机执行)的文件的扩展名为( )A..exe B..c C..obj D..cpp( 知识点:C语言的特点;难度系数:1;答案:A )下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能( 知识点:C语言的特点;难度系数:3;答案:D )构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数( 知识点:C程序的特点;难度系数:1;答案:D )下列叙述正确的是:()A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行( 知识点:C程序的特点;难度系数:2;答案:C )某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行( 知识点:C程序的特点;难度系数:1;答案:B )以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示( 知识点:C程序的特点;难度系数:1;答案:D )以下为C语句的是:()A.a=8B.a++;C.if(a>8)D.#include <stdio.h>( 知识点:C语句的特点;难度系数:2;答案:B )以下不是C语句的是:()A.a=8;B.a++;C.if(a>8);D.for(i=1;i<5;i++)( 知识点:C语句的特点;难度系数:2;答案:D )以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);( 知识点:C语句的特点;难度系数:2;答案:B )C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句D.就是函数体中的语句( 知识点:C语句的特点;难度系数:2;答案:C )当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( ) A.由系统自动换行B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行( 知识点:C语句的特点;难度系数:2;答案:C )在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2003级信息学院《C语言程序设计》考试试题系班级姓名学号成绩一. 判断下列语句或程序的对错。
(“×”表示错,“√”表示对)(10分)1int x=y=z=20; ( ×) y,z需要在前定义2 #define M 50; ( ×) 不能有分号3 printf(“%\t”,(40,50,60)); ( √)4float a[100],*p;p=a++; ( ×) 数组名是地址常量,不能做++操作5char str[20];str[20]=0; ( ×) str[20]单元不可用6int data[4]={0,1,2,3,4}; ( ×) 0,1,2,3,4是5个元素,与data[4]不匹配7int x=‟\014‟; ( √)8int xyz.1=2; ( ×) xyz.1不是合法的标识符(变量名)9char *p=”c:\test\prg.c”; ( ×) 修改为c:\\test\\prg.c10int *p;*p=20; ( ×) 指针不能用常量进行赋值二. 计算下列表达式的值(10分)设unsigned int a=15,b=21,c=5,d=1;float f;(1) f=b/c ( 4.0 ) b/c是整数除,先得到4,然后赋值给f(2) !(a+b)+c-1&&b+c/2 ( 1 )(3) a^b+b&0x55+c<<3|015 ( 0x000f )(4) d*=c--%b++ ( 5 )(5) a%=(c%=2) ( 0 )三.程序改错(10分)1从键盘上输入三个字符串,然后按字典(从小到大)顺序进行输出# include <stdio.h># include<string.h>void swap(char *,char *);//函数声明需要分号结束main(){char a[80],b[80],c[80];scanf(“%s%s%s”,&a,&b,&c); //去掉&号,数组名即表示地址if(a>b)swap(a,b); strcmp(a,b)>0 a,b比较需要用字符串比较函数if(b>c)swap(b,c); strcmp(b,c)>0 b,c比较需要用字符串比较函数printf(“%s\n%s\n%s\n”,a,b,c);}void swap(char *pstr1,char *pstr2){char *p; //char p[80];p=pstr1; //strcpy(p,pstr1);字符串赋值需要用拷贝函数pstr1=pstr2; //strcpy(pstr1,pstr2);pstr2=p; //strcpy(pstr2,p);}(2)求某班30个学生数学成绩的最高分和平均分.# include <stdio.h>flaot process(float *p1,int n,int *p2); 添加函数声明main(){float a[30],aver;int ;for(m=0;m<30;m++)scanf(“%f”,&a[m]);max=process(a,30,&aver);pr intf(“max=%f,ave=%f\n),max,aver);}float process(float *p1,int n,int *p2){char x;int temp; //float temp 与函数返回类型匹配for(x=0;x<=n;x++) //for(x=0;x<n;x++) 不能要等号{if (p1[x]>temp)temp=p1[x];*p2+=p1[x];}p2=p2/n; //*p2=*p2/n;return temp;}四.程序填空(1)有一分数系列:2/1,3/2,/5/3,8/5,13/8,21/13……求出这数列的前50项和# include <stdio.h>main(){int m;float__ ________; // t,s=0,a=2,b=1for(m=1;___ _______;m++) //m<=50{s=s+a/b;t=a;a=_a+b_____;b=_t_;}printf(“sum=%f\n:,s);(2)按如图所示格式打印杨辉三角形的前10行11 11 2 11 3 3 11 4 6 4 1………main(){int m,n,a[10][10];for(m=0;m<10;m++){a[m][0]=1;__________________; a[m][m]=1;}for(__m=2___;m<10;m++)for(___n=1____;__n<m__________;n++)a[m][n]=a[m-1][n-1]+a[m-1][n];for(m=0;m<10;m++){for(n=0;__n<=m_____________;n++)printf(“%6d”,a[m][n]);_printf(“%5d”,a[m][n]);}}五.写输出结果(1)#include <stdio.h>void main(){int m,n,p,s;s=0;for(m=1;m<=4;m++){for(n=1;n<=m;n++){ p=1;for(n=1;n<=m;n++)p=p*n;}s=s+p;}printf(“s=%d\n”,s);S = 33; //1!+2!+3!+4!;(2)# include <stdio.h>void auto_static();int g_val;main(){int m;for(m=0;m<5;m++)auto_static();}void auto_static(){int au=0;static int st=0;printf(“au=%d,st=%d,g_val=%d\n”,au++,++st,g_val++);}au=0,st=1,g_val=0au=0,st=2,g_val=1au=0,st=3,g_val=2au=0,st=4,g_val=3au=0,st=5,g_val=4(3)# include <stdio.h>main(){int i,j,a[][3]={2,4,6,1,2,3};int *p[2]={a[0],a[1]};for(i=0;i<2;i++){for(j=0;j<3;j++)printf(“%3d\t”,*(p[i]+j));printf(“\n”);}}2 4 61 2 3(4)# include <stdio.h># include <string.h>struct person{char name[20];int count;};void main(){struct person leader[3]={{“li”,0},{“zhang”,0},{“wang”,0}}; char name[20],m,n;for(m=1;m<7;m++){scanf(“%s”,name);for(n=0;n<3;n++)if(!strcmp(name,leader[j].name)){leader[j].count++;break;}}printf(“\n”);for(m=0;m<3;m++){printf(“%s:%d\n”,leader[m].name,leader[m].count);}}当程序运行时,键入情况如下:liwangleiliwangzhang写出程序的输出结果。
基本上是书中例题8.3 p238-239li:2zhang:1wang:2(5)#include <stdio.h>#define NULL 0void main(){char **pp;cha r *name[]={“fortran”,”basic”,”pascal”,””};int m;pp=name;for(m=0;**pp!=NULL;m++,pp++)printf(“%s\n”,*pp+m);}fortranasicscal六.编写程序(35分)(1)一个程序实现这样的功能:商店卖西瓜,10斤以上(包括10斤,以下同)的每斤0.8元,8斤以上10斤以下的每斤0.6元,8斤以下的每斤0.4元。
输入西瓜的重量和顾客所付的金额,输出应付货款和应找钱数。
(9分)#include <stdio.h>void main(){float weight,a,b,c;printf("请输入重量和所付金额:");scanf("%f%f",&weight,&a);if(weight<8.0){b = weight*0.4;c = a - b;}else if(weight<10){b = 8*0.4+(weight-8)*0.6;c = a - b;}else{b = 8.0*0.4+2*0.6+(weight-10)*0.8;c = a - b;}printf("应付货款:%f 应找钱数:%f\n",b,c);}(2)编写一个函数,求两个在整数的最大公约数;主函数完成两个整数的输入,调用所编函数和输出所求的最大公约数。
(9分)(3)编写一个函数,删除给定字符串中的指定字符,如给定字符串“abcdfrc”,删除指定的字符‘c’后,字符串变成“abdfr”;主函数完成给定字符串和指定字符的输入,调用所编函数,输出处理后的字符串。
注意:不得使用全局变量,注意程序结构。
(9分)(4)编程处理某班30个学生4门课的成绩,它们是数学,物理,英语和计算机,按学号依次输入学生的学号,姓名,性别(用1表示男生,0表示女生)和4门课成绩。
要求以清晰的格式从高分到低分的顺序打印平均分高于全班总平均分的男生的成绩单。
(8分)要求:输入.输出,计算和排序分别用程序实现,主函数只是调用这些函数。
不得使用全局变量,注意程序结构。
#include <stdio.h>#define NUM 5struct Student{int number;char name[20];int sex;float maths;float phys;float eng;float comp;float aver;};Input(struct Student *stu){int i;for(i=0;i<NUM;i++){printf("please enter name:");gets(stu[i].name);printf("please enter num sex maths phys english computer:");scanf("%d %d %f %f %f %f",&stu[i].number,&stu[i].sex,&stu[i].maths,&stu[i].phys,&stu[i].eng,&stu[i].comp);getchar();}}Aver(struct Student *stu,float *total_aver){int i;float total=0;float sum=0;for(i=0;i<NUM;i++)total = stu[i].maths+stu[i].phys+stu[i].eng+stu[i].comp;stu[i].aver= total/4;sum += total;}*total_aver = sum/(4*NUM);}Sort(struct Student *stu){int i,j;struct Student temp;for(i=0;i<NUM-1;i++){for(j=i+1;j<NUM;j++)if(stu[i].aver>stu[j].aver){temp = stu[i];stu[i] = stu[j];stu[j] = temp;}}}Output(struct Student *stu,float total_aver){int i;printf("total_aver:%f\n",total_aver);printf("num name sex math phys english computer aver\n");for(i=0;i<NUM;i++){if(stu[i].aver>=total_aver)printf("%d %s %d %f %f %f %f %f\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].maths,stu[i].phys,stu[i].eng,stu[i].comp,stu[i].aver);}void main(){struct Student stu[NUM];float total_aver;Input(stu);Aver(stu,&total_aver);Sort(stu);Output(stu,total_aver);}2004级信息学院《C语言设计》考试试题一、判断下列语句或程序的对错。