华中科技大学2003-2006级信息学院《C语言程序设计》考试试题及答案(DOC)
华中科技大学级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 )。
华中科技大学标准C语言程序设计及应用习题答案
第二章一.选择题1.C2.B D3.A4.A5. D6.C7.D8.C9.A 10.D11.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(5)1(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.3main(){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); }}#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);main(){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;printf("pls enter a integer:");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);printf("pls enter string 2:");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");}。
华中科技大学历年考研真题
华中科技大学数学系数学分析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语言程序设计》课后习题参考答案
#include <stdio.h>
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int n,i,j,k=0;
printf("Please enter the number:");
scanf("%d",&n);
for(i=0;i<10;i++)
{ while(n==a[i])
s++;
}
}
printf("s=%d\n",s);
}
4.编程:从键盘输入正整数n,输出1+(1+2)+(1+2+3)+……+(1+2+3+…+n)。
参考代码如下:
#include <stdio.h>
main()
{
int n,i,s=0,t=0;
printf("Please enter n=");
scanf("%d",&n);
for(j=0;j<3;j++)
printf("%5d",b[i][j]);
}
printf("\n");
getch();
}
6.利用公式 计算m×n的矩阵A和m×n的矩阵B之和,已知 为矩阵A的元素, 为矩阵B的元素, 为矩阵C的元素, 。
1. A 2.A 3.C
二、填空题
1.基本数据类型、构造数据类型、指针类型、空类型
2.反斜线“\”
3.枚举数据类型(Enumerated Data Type)
华中科技大学C语言试卷
计算机学院2008-2009学年第2学期C语言程序设计考试试卷一、单项选择题(在下面每小题的A、B、C、D四个选项中,只有一个选项是正确的,请选择正确的选项并填写到括号内,选择正确得分。
本大题共10小题,每小题1分,共10分。
)1、ENUM是【 b 】A、合法标识符B、C语言的关键字C、合法的字符串D、既不是C语言的关键字,也不是合法的字符串或标识符2、下列数据中属于合法字符常量的是【 d 】A、'\'B、'\xag'C、'45'D、'\''3、下列数据中合法的浮点型常量是【 c 】A、E+10B、2E+1.5C、2E-10D、0x2.5E104、下列数据中与256等值的数为【】A、0256B、0400C、0x400D、0x2565、以下叙述中正确的是【】A、局部变量说明为static存储类型,其生存期将得到延长B、全局变量说明为static存储类型,其作用域将被扩大C、任何存储类型的变量在未赋初值时,其值都是不确定的D、形参可以使用的存储类型说明符与局部变量完全相同6、 -127的16位补码的十六进制表示是【】A、0xff81B、0x807fC、0xff80D、0x80807、对于下面的数组声明,正确的是【】A、int x[][5];B、char t[ ]={…a‟,‟b‟,‟c‟,‟\0‟};C、int n=5,a[n];D、char s[5]=“abcde”;8、若有以下说明和语句,则在执行for语句后,*(*pt+2)表示的数组元素【】int t[3][3],(*pt)[3],k;for (k=0;k<3;k++) pt = t+k;A、t[1][2]B、t[2][0]C、t[2][1]D、t[2][2]9、已知枚举类型定义: enum a {ONE=5,TWO=3,THREE}; 则THREE的值的是【】A、1B、2C、4D、010、设有以下说明和语句,则表达式z.y.a2的值的是【】struct packed {unsigned short a1 : 2;unsigned short a2 : 2;unsigned short a3 : 4;unsigned short a4 : 8;};union {short x;struct packed y;} z;z.x=0xabab;A、11B、3C、2D、10二、多项选择题(下面每小题的A、B、C、D备选项中,有两个或两个以上的选项是正确的,请选择正确的选项并填写到括号内,多选、少选、错选均不得分。
大学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语言程序设计教程》习题参考答案祝胜林主编华南理工大学出版社【习题1】 (1)【习题2】 (2)【习题3】 (3)【习题4】 (5)【习题5】 (8)【习题6】 (11)【习题7】 (14)【习题8】 (17)【习题9】 (17)【习题10】 (20)一、简答题(在课本中寻找答案,略)1.1C程序的基本结构包括哪些内容?1.2如何定义标识符?1.3输入格式、输出格式的组成包括哪些内容?1.4C语言函数分为哪两类?1.5计算表达式的值应该考虑哪些方面?1.6上机调试程序的步骤如何?二、判断并改错1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.9编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.11注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13在屏幕上输出自己名字的拼音。
提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.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语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。
3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。
4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。
6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。
函数可以没有返回值,此时函数类型为 void 。
7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。
8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。
华中科技大学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语言程序设计》试题二 (1)一、填空题 (1)二、选择题 (2)三、阅读程序题 (5)四、程序填空题 (5)五、编程题 (7)《C语言程序设计》试题二答案 (8)《C语言程序设计》试题二一、填空题1、C语言中普通整型变量的类型说明符为,在内存中占字节,有符号普通整型的数据范围是。
2、C语言中基本的数据类型有:、、。
3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是。
4、共用体和结构体的定义格式类似,不同点是。
5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。
6、有语句:char A[ ]={”I am a student”};该字符串的长度是,A[3]= 。
7、符号”a”和’a’的区别。
8、下列程序的输出结果是。
int ast(int x,int y,int * cp,int * dp){ *cp=x+y; *dp=x-y; }main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d/n",c,d); }二、选择题1、以下选项中属于C语言的数据类型是(B )。
A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是( C )。
A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是( D )。
A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是( C )。
A.字符型数组中可能存放字符串。
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一、实验目的1.进一步理解指针的概念,掌握指针变量间接地址访问的本质;2.掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;3.掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;4.掌握字符串的指针和指向字符串的指针变量;5.掌握指针数组和二级指针;6.熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。
7.理解函数定义、原型和调用,掌握函数参数的传递(传值、传指针和传引用)二、实验内容及要求(鼓励一题多解)1.深入理解《上机实践训练教程》2.6实验六案例示范和有关概念文字描述中的知识点,给出你的理解。
定义指针时一定要给指针分配好应有的类型和内存空间,防止出现野指针,造成程序不能运行甚至系统崩溃。
数组名不能作为左值,它实际上是一个常量指针,不能通过str=“comrade”给字符数组str赋值。
2.输入每个学生的姓名和线性代数、通信原理和C语言课程成绩,统计每人的平均值,并按平均值降序排列,输出排列后的名次、姓名、课程名(成绩)和平均值。
(注:平均值相同者按姓名的字母表顺序排列)(要求用结构体数据类型实现)#include <stdio.h>#include <math.h>#include <stdlib.h>#define N 3struct student{int rank;char name[20];double score[3];double aver;};void input(struct student *p,int n);void sort(struct student *p,int n);double average (struct student *p,int n);void output(struct student *p,int n,double aver);void main(){struct student stu[N];double aver;input(stu,N);sort(stu,N);aver=average(stu,N);output(stu,N,aver);}void input(struct student *p,int n){int i,j;double a;char str[20];for(i=0;i<n;i++,p++){printf("请输入考生姓名:\n");gets(p->name);printf("请依次输入学生线性代数、通信原理、c语言分数:\n");for(a=0,j=0;j<3;j++){gets(str);p->score[j]=atof(str);a+=p->score[j];}p->aver=a/3;}return;}void sort(struct student *p,int n){struct student temp;int i,j;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(p[j].aver<p[j+1].aver){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}double average(struct student *p,int n){int i;double temp;for(i=0,temp=0;i<n;i++)temp=temp+p[i].aver;return temp/n;}void output(struct student *p,int n,double aver){int i;printf("姓名线性代数通信原理c语言平均分\n");printf("-----------------------------------------\n");for(i=0;i<n;i++){printf("%-10s%8.2lf%8.2lf%8.2lf%8.2lf\n",p[i].name,p[i].score[0],p[i].score[1],p[i].score[2],p[i].aver);}}运行结果:3.利用指向指针的指针方法对N个整数排序并输出。
- 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语言设计》考试试题一、判断下列语句或程序的对错。