哈工大c语言 练习题

合集下载

哈尔滨工业大学2003-2006年C语言 考试题

哈尔滨工业大学2003-2006年C语言 考试题

哈工大2003年春季学期C语言考试题说明:请将答案写在答题纸的相应题号后面!!!!!一、填空题:(24分每空1.5分)1.已知:int *p,a; 则语句p=&a;中的运算符&的含义是( 1 )。

2.凡在函数体内没有明显存储类别说明的变量是( 2 )。

3.已知:struct{ int k;char c;float a;}test; 则sizeof(test)的值是(3 )。

4.程序填空:(1)下面的程序是main函数利用函数abcd来交换main中的两个变量的值。

# include <stdio.h>main(){float x=10,y=20;abcd( 4 );printf(“%f,%f”,x,y);}abcd(x,y)( 5 );{float temp;temp=( 6 );( 7 );( 8 );}(2)下面的程序是使用冒泡法对输入的10个数据从小到大排序。

排好序的10个数分两行输出。

#include <stdio.h>main(){ ( 9 );int j,k;printf(“ input 10 numbers please \n”);for(j=0;( 10 );j++)scanf(“%f”,&a[j]);printf(“\n”);for(j=0;( 11 );j++)for(k=0;( 12 );k++)if( 13 ){ x=a[k];( 14 );a[k+1]=x;}printf(“The sorted 10 numbers:\n”);for(j=0;( 15 );j++){ if( 16 )printf(“\n”);printf(“%f\t”,a[j]);}printf(“\n”);}二、单项选择题:(20分每题2分)1.C语言中基本数据类型包括( )。

A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、实型2.已知int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是()。

哈尔滨工业大学C语言MOOC在线测试周答案

哈尔滨工业大学C语言MOOC在线测试周答案

本答案仅供参考第3周1计算两个数(de)平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们(de)平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数.提示:使用数学函数需要在程序中加入编译预处理命令 include <>以下为程序(de)运行结果示例:please input x and y:,↙result=输入格式: "%f,%f"输出格式:输入提示信息:"Please input x and y:\n"输出格式:"Result=%.2f\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>int main(){float x,y,S,D;printf("Please input x and y:\n");scanf("%f,%f",&x,&y);S = pow(x,2);D = pow(y,2);printf("Result=%.2f\n",S+D);return 0;}2逆序数(de)拆分计算(3分)题目内容:从键盘输入一个4位数(de)整数,编程计算并输出它(de)逆序数(忽略整数前(de)正负号).例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算41000+3100+210+1 = 4321,并输出4321.再将得到(de)逆序数4321拆分为两个2位数(de)正整数43和21,计算并输出拆分后(de)两个数(de)平方和(de)结果.以下是程序(de)运行结果示例:Input x:-1234↙y=4321a=43,b=21result=2290输入格式: "%d"输出格式:输入提示信息:"Input x:\n"逆序数输出格式:"y=%d\n"逆序数拆分后(de)输出格式:"a=%d,b=%d\n"平方和(de)输出格式:"result=%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>main(){int x,b0,b1,b2,b3,y,a,b,c;printf("Input x:\n");scanf("%d",&x);x = (int)fabs(x); /取x绝对值/b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/b0 = x%10; /取x个位/y = b3+b210+b1100+b01000;printf("y=%d\n",y);a = b010+b1;b = b210+b3;c = (aa)+(bb);printf("a=%d,b=%d\n",a,b);printf("result=%d\n",c);return 0;}3拆分英文名(3分)题目内容:从键盘输入某同学(de)英文名(小写输入,假设学生(de)英文名只包含3个字母.如: tom),编写程序在屏幕上输出该同学(de)英文名,且首字母大写(如: Tom).同时输出组成该英文名(de)所有英文字符在26个英文字母中(de)序号.以下为程序(de)运行结果示例:Input your English name:tom↙Tomt:20o:15m:13输入格式: "%c%c%c"输出格式:输入提示信息:"Input your English name:\n"首字母大写(de)英文姓名(de)输出格式:"%c%c%c\n"姓名中每个字母在26个英文字母中(de)序号(de)输出格式:"%c:%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>int main(){char x,y,z,A;printf("Input your English name:\n");scanf("%c%c%c\n",&x,&y,&z);A=x-32; /首字母改为大写/printf("%c%c%c\n",A,y,z);printf("%c:%d\n",x,x-96);printf("%c:%d\n",y,y-96);printf("%c:%d\n",z,z-96);}4计算体指数(3分)题目内容:从键盘输入某人(de)身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位.假设体重为w公斤,身高为h米,则体指数(de)计算公式为:以下是程序(de)运行结果示例:Input weight, height:70,174↙weight=140height=t=输入格式: "%d,%d"输出格式:输入提示信息:"Input weight, height:\n" (注意:在height和逗号之间有一个空格)体重输出格式:"weight=%d\n"身高输出格式:"height=%.2f\n"体指数输出格式:"t=%.2f\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>int main(){float A,b;int x,y;printf("Input weight, height:\n");scanf("%d,%d",&x,&y);printf("weight=%d\n",x2);A=(float)y/100;printf("height=%.2f\n",A);b=(float)x/(AA);printf("t=%.2f\n",b);}第4周1数位拆分(4分)题目内容:从键盘上输入一个4位数(de)整数n,编写程序将其拆分为两个2位数(de)整数a和b,计算并输出拆分后(de)两个数(de)加、减、乘、除和求余运算(de)结果.例如n=-4321,设拆分后(de)两个整数为a,b,则a=-43,b=-21.除法运算结果要求精确到小数点后2位.求余和除法运算需要考虑除数为0(de)情况,即如果拆分后b=0,则输出提示信息"The second operater is zero"程序(de)运行结果示例1:Please input n:1200↙12,0sum=12,sub=12,multi=0The second operater is zero程序(de)运行结果示例2:Please input n:-2304↙-23,-4sum=-27,sub=-19,multi=92dev=,mod=-3输入格式: "%d"输出格式:输入提示信息:"Please input n:\n"拆分后(de)两个整数(de)输出格式:"%d,%d\n"加法、减法、乘法(de)输出格式:"sum=%d,sub=%d,multi=%d\n"除法和求余(de)输出格式:"dev=%.2f,mod=%d\n"除数为0(de)提示信息:"The second operater is zero\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <> <>main(){float c;int x,b0,b1,b2,b3,a,b,d;printf("Please input n:\n");scanf("%d",&x);b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/b0 = x%10; /取x个位/a=b310+b2; /拆分输入(de)整数为两段/b=b110+b0;printf("%d,%d\n",a,b);printf("sum=%d,sub=%d,multi=%d\n",a+b,a-b,ab); /输出两段数(de)加,减,乘/if(0==b){printf("The second operater is zero\n");}else{c=(float)a/b;d=a%b;printf("dev=%.2f,mod=%d\n",c,d);}return 0;}2快递费用计算(4分)题目内容:上海市(de)某快递公司根据投送目(de)地距离公司(de)远近,将全国划分成5个区域:快递费按邮件重量计算,由起重费用、续重费用两部分构成:(1)起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重(de)重量,按公斤(不足1公斤,按1公斤计算)收取续重费;(2)同城起重资费10元,续重3元/公斤;(3)寄往1区(江浙两省)(de)邮件,起重资费10元,续重4元;(4)寄往其他地区(de)邮件,起重资费统一为15元.而续重部分,不同区域价格不同:2区(de)续重5元/公斤,3区(de)续重元/公斤,4区(de)续重10元/公斤.编写程序,从键盘输入邮件(de)目(de)区域编码和重量,计算并输出运费,计算结果保留2位小数.提示:续重部分不足一公斤,按1公斤计算.因此,如包裹重量2.3公斤:1公斤算起重,剩余(de)1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤.如果重量应大于0、区域编号不能超出0-4(de)范围.程序运行结果示例1:4,↙Price:程序运行结果示例2:5,↙Error in AreaPrice:输入格式:用逗号分隔(de)两个数字,第一个表示区域、第二个是重量:"%d,%f"输出格式:价格(de)输出格式:"Price: %\n"区域错误(de)提示信息:"Error in Area\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>define eps 1E-5main(){float b,c,d;int a;scanf("%d,%f",&a,&b);switch(a){case 0:if (b<=1+eps){c=;}else{d=ceil;c=d3+;}printf("Price: %5.2f\n",c); break;case 1:if (b<=1+eps){c=;}else{d=ceil;c=d4+;}printf("Price: %5.2f\n",c); break;case 2:if (b<=1+eps){c=;}else{d=ceil;c=d5+;}printf("Price: %5.2f\n",c); break;case 3:if (b<=1+eps){c=;}else{d=ceil;c=d+15;}printf("Price: %5.2f\n",c); break;case 4:if (b<=1+eps){c=;}else{d=ceil;c=d10+;}printf("Price: %5.2f\n",c);break;default:printf("Error in Area\n");printf("Price: ");}return 0;}3数据区间判断(6分)题目内容:从键盘输入一个int型(de)正整数n(已知:0<n<10000),编写程序判断n落在哪个区间.如果用户输入(de)数据不在指定(de)范围里,程序输出"error".例如,输入265,则该数属于区间 100-999.程序运行结果示例1:Please enter the number:2563↙2563: 1000-9999程序运行结果示例2:Please enter the number:156↙156: 100-999程序运行结果示例3:Please enter the number:36↙36: 10-99程序运行结果示例4:Please enter the number:3↙3: 0-9程序运行结果示例5:Please enter the number:10923↙error输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"输出(de)区间判断:"%d: 1000-9999\n""%d: 100-999\n""%d: 10-99\n""%d: 0-9\n"输入错误提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>int main(){int x,b0,b1,b2,b3,y,a,b,c;printf("Please enter the number:\n");scanf("%d",&x);if (x<=0||x>=10000){printf("error\n");}else{b3 = x/1000; /取x千位/b2 = (x-b31000)/100; /取x百位/b1 = (x-b31000-b2100)/10; /取x十位/ b0 = x%10; /取x个位/if(b3=0){printf("%d: 1000-9999\n",x);}else if(b3==0&&b2=0){printf("%d: 100-999\n",x);}else if(b3==0&&b2==0&&b1=0){printf("%d: 10-99\n",x);}else{printf("%d: 0-9\n",x);}}return 0;}4计算一元二次方程(de)根(4分)题目内容:根据下面给出(de)求根公式,计算并输出一元二次方程(de)两个实根,要求精确到小数点后4位.其中a,b,c(de)值由用户从键盘输入.如果用户输入(de)系数不满足求实根(de)要求,输出错误提示"error".程序运行结果示例1:Please enter the coefficients a,b,c:1,2,1↙x1=, x2=程序运行结果示例2:Please enter the coefficients a,b,c:2,6,1↙x1=, x2=程序运行结果示例3:Please enter the coefficients a,b,c:2,1,6↙error输入格式: "%f,%f,%f"输出格式:输入提示信息:"Please enter the coefficients a,b,c:\n"输出格式:"x1=%7.4f, x2=%\n"输入错误提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>int main(){float a,b,c,disc,p,q;printf("Please enter the coefficients a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);disc=bb-4ac;if(disc<0){printf("error\n");}else{p=-b/(2a);q=sqrt(disc)/(2a);printf("x1=%7.4f, x2=%7.4f\n",q+p,p-q);}return 0;}第五周16位密码输入检测(4分)题目内容:从键盘输入6位仅由数字0~9组成(de)密码.用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码.直到用户输入(de)密码全部是数字为止.以下为程序(de)运行结果示例:Input your password:1↙1, you have enter 1-bits number6↙6, you have enter 2-bits numbera↙errord↙error4↙4, you have enter 3-bits number6↙6, you have enter 4-bits number8↙8, you have enter 5-bits number2↙2, you have enter 6-bits number输入格式:数字字符输入格式:"%c"输出格式:输入提示信息:"Input your password:\n"如果输入(de)是数字,输出格式为:"%c, you have enter %d-bits number\n"如果输入(de)不是数字,输出提示信息:"error\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main(){int i;char c;printf("Input your password:\n");i=0;while (i<6){scanf("%c%c",&c);if ((c>=48)&&(c<=57)){i=i+1;printf("%c, you have enter %d-bits number\n",c,i); }else{printf("error\n");}}return 0;}2判断一个整型数据有几位(4分)题目内容:从键盘输入一个整型数据(int型),编写程序判断该整数共有几位.例如,从键盘输入整数16644,该整数共有5位.程序运行结果示例1:Please enter the number:21125↙21125: 5 bits程序运行结果示例2:Please enter the number:-12234↙-12234: 5 bits输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"判断该整数共有几位: "%d: %d bits\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>include <>int main(){int n,nn,b,i,j,sum;printf("Please enter the number:\n");scanf("%d",&n);nn=fabs(n);b=1;sum=1;i=1;j=10;while (b=1){if ((nn>=i)&&(nn<j)){printf("%d: %d bits\n",n,sum);b=0;break;}else{i=i10;j=j10;sum=sum+1;}}return 0;}3检测输入数据中奇数和偶数(de)个数(4分)题目内容:从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入(de)数据).编写程序判断输入数据中奇数和偶数(de)个数.如果用户输入(de)第一个数据就是-1,则程序输出"over".否则.用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数(de)个数.程序运行结果示例1:Please enter the number:1↙1:odd5↙5:odd8↙8:even9↙9:odd12↙12:even17↙17:odd-1↙The total number of odd is 4The total number of even is 2程序运行结果示例2:Please enter the number:-1↙overThe total number of odd is 0The total number of even is 0输入格式: "%d"输出格式:输入提示信息:"Please enter the number:\n"用户输入(de)第一个数据就是-1,输出格式:"over\n"奇数(de)输出格式:"%d:odd\n"偶数(de)输出格式:"%d:even\n"输入数据中奇数(de)个数统计:"The total number of odd is %d\n"输入数据中偶数(de)个数统计:"The total number of even is %d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main(){int a,odd,even;odd=0;even=0;printf("Please enter the number:\n");a=0;while (a=-1){scanf("%d",&a);if (a=-1){if (a%2==1){odd++;printf("%d:odd\n",a); }else {even++;printf("%d:even\n",a); }}}if (even+odd==0){printf("over\n");}printf("The total number of odd is %d\n",odd);printf("The total number of even is %d\n",even);return 0;}4计算球(de)反弹高度(4分)题目内容:一个球从100米高度自由落下,每次落地后反跳回原高度(de)一半,再落下并反弹......,求它在第5次和第10次落地时,分别共经过了多少米第5次和第10次反弹分别是多高要求计算结果保留到小数点后3位.用户从键盘输入想要计算(de)第n次(n<=15).程序运行结果示例1:Input:5↙5 times:程序运行结果示例2:Input:10↙10 times:输入格式: "%d"输出格式:反弹次数:"%d times:\n"第n次反弹共经过多少米:"%.3f\n"第n次(de)反弹高度:"%.3f\n"输入提示信息:"Input:\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main(){double h,sum=0;int n,i;printf("Input:\n");scanf("%d",&n);h=100;for (i=1;i<=n;i++){sum+=h;h/=2;sum+=h;}sum-=h;printf("%d times:\n",n);printf("%.3f\n",sum);printf("%.3f\n",h);return 0;}第六周1程序改错(5分)下面代码(de)功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入(de)是非法字符或者不在合理区间内(de)数据(例如输入(de)是a,或者102,或-45等),则程序输出 Input error,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出.目前程序存在错误,请将其修改正确.并按照下面给出(de)运行示例检查程序.1.include<>2. int main()3. {4. int score;5. char grade;6. printf("Please input score:");7. scanf("%d", &score);8. if (score < 0 || score > 100)9. printf("Input error\n");10. else if (score >= 90)11.grade = 'A’;12. else if (score >= 80)13. grade = 'B';14. else if (score >= 70)15. grade = 'C';16. else if (score >= 60)17. grade = 'D';18. else19. grade = 'E';20. printf("grade:%c\n", grade);21. return 0;22.}程序运行结果示例1:Please input score:a↙Input errorPlease input score: -12↙Input errorPlease input score: 230↙Input errorPlease input score: 92↙grade: A程序运行结果示例2:Please input score: 88↙grade: B程序运行结果示例3:Please input score: 73↙grade: C程序运行结果示例4:Please input score:65↙grade: D程序运行结果示例5:Please input score:27↙grade: E输入提示信息:"Please input score:\n"输入格式: "%d"输出格式:输入错误时(de)提示信息:"Input error\n"输出格式:"grade: %c\n" (注意:%c前面有一个空格)为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude<>int main(){int score=-1;char grade;printf("Please input score:\n");scanf("%d", &score);while(score < 0 || score > 100){getchar();printf("Input error\n");printf("Please input score:\n"); scanf("%d", &score);}if (score >= 90)grade = 'A';else if (score >= 80)grade = 'B';else if (score >= 70)grade = 'C';else if (score >= 60)grade = 'D';elsegrade = 'E';printf("grade: %c\n", grade);return 0;2编程计算a+aa+aaa+…+aa…a(n个a)(de)值(4分)题目内容:编程计算a+aa+aaa+…+aa…a(n个a)(de)值,n和a(de)值由键盘输入.例如,当n=4,a=2,表示计算2+22+222+2222(de)值.程序运行结果示例:Input a,n:2,4↙sum=2468输入提示信息:"Input a,n:\n"输入格式: "%d,%d"(先输入a,后输入n)输出格式:"sum=%ld\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:31kbinclude <>main()long term=0,sum=0;int a,i,n;printf("Input a,n:\n");scanf("%d,%d",&a,&n);for(i=1;i<=n;i++){term=term10+a;sum =sum+term;}printf("sum=%ld\n",sum);}3搬砖问题(4分)题目内容:n块砖( 27<n<=77 ),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人请用穷举法编程求解,n(de)值要求从键盘输入.输出结果按照男人数量升序给出(见下面示例3).程序(de)运行结果示例1:Input n(27<n<=77):28↙men=0,women=4,children=32程序(de)运行结果示例2:Input n(27<n<=77):36↙men=3,women=3,children=30程序(de)运行结果示例3:Input n(27<n<=77):60↙men=2,women=14,children=20men=7,women=7,children=22men=12,women=0,children=24输入提示:"Input n(27<n<=77):\n"输入格式: "%d"输出格式:"men=%d,women=%d,children=%d\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.include<>int main(){int a;int man, wman, child;printf("Input n(27<n<=77):\n");scanf("%d",&a);for (man = 0; man <= 15; man++){for (wman = 0; wman <= 20; wman++){child = 36 - wman - man;if (a == child / 2 + 3 wman + 4 man && child % 2 == 0){printf("men=%d,women=%d,children=%d\n", man, wman, child);}}}}4编程输出某年某月有多少天(考虑到闰年).(5分)题目内容:从键盘输入一个年份和月份,输出该月有多少天(考虑闰年),用switch 语句编程.程序运行结果示例1:Input year,month:2015,3↙31 days程序运行结果示例2:Input year,month:2015,4↙30 days程序运行结果示例3:Input year,month:2016,2↙29 days程序运行结果示例4:Input year,month:2014,2↙28 days程序运行结果示例5:Input year,month:2015,13↙Input error输入提示信息:"Input year,month:\n"输入格式: "%d,%d"输出格式:输入错误时(de)提示信息:"Input error\n"输出格式:"31 days\n""30 days\n""29 days\n""28 days\n"为避免出现格式错误,请直接拷贝粘贴题目中给(de)格式字符串和提示信息到你(de)程序中.时间限制:500ms内存限制:32000kbinclude <>int main( ){int y,m;printf("Input year,month:\n");scanf("%d,%d",&y,&m);if (m< 0||m>12) {printf("Input error\n");return 0;} switch (m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31 days\n");break;case 4:case 6:case 9:case 11:printf("30 days\n");break;case 2:if (y%100==0) y/=100;if (y%4==0) printf("29 days\n");else printf("28 days\n");}return 0;}第七周1递归法计算游戏人员(de)年龄(4分)题目内容:有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,.....,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁.第1个人说自己10岁,问第n个人多大年纪.递归函数原型:unsigned int ComputeAge(unsigned int n);提示:计算年龄(de)递归公式为:输入格式: "%u"输出格式:"The person's age is %u\n"输入样例1:5↙输出样例1:The_person's_age_is_18输入样例2:10↙输出样例2:The_person's_age_is_28注意:为避免出现格式错误,请直接拷贝粘贴上面给出(de)输入、输出提示信息和格式控制字符串(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格.)时间限制:500ms内存限制:32000kbinclude<>include<>unsigned int ComputeAge(unsigned int n);unsigned int ComputeAge(unsigned int n){int a;if (n == 1)a = 10;elsea = ComputeAge(n - 1) + 2;return a;}int main(){unsigned int n,f;scanf("%u",&n);f=ComputeAge(n);printf("The person's age is %u\n",f);return 0;}2.魔术师猜数(4分)题目内容:在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数(de)和值.只要观众说出这个和是多少,则魔术师一定能猜出观众心里想(de)原数abc是多少.例如,观众甲说他计算(de)和值是1999,则魔术师立即说出他想(de)数是443,而观众乙说他计算(de)和值是1998,则魔术师说:“你算错了”.请编程模拟这个数字魔术游戏.要求用函数实现,函数原型为:int Magic(int m);其中形参m代表观众计算(de)和值.输入格式:"%d"输出格式:观众计算错误,魔术师给出(de)结论:"The sum you calculated is wrong\n"观众计算正确,魔术师给出(de)结论:"The number is %d\n"输入样例1:1998↙输出样例1:The_sum_you_calculated_is_wrong输入样例2:1999↙输出样例2:The_number_is_443注意:为避免出现格式错误,请直接拷贝粘贴上面给出(de)输入、输出提示信息和格式控制字符串(注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格.)参考:include<>include<>include<>include<>include<>....______vvvvvv______\t\n");printf("\t—__— zzzzzzzzzzz电脑不给力,请稍等一会......—__—zzzzzzzzzzzz\t\n");for(i=0;i<80;i++){printf("%%");Sleep(200);} printf("\t\t\t——终于结束了╮(╯▽╰)╭\t\t\t\n");system("CLS");system("color 8B");printf(" \n");。

哈工大C语言程序设计习题ex6

哈工大C语言程序设计习题ex6

习题66.3 阅读程序,按要求在空白处填写适当地表达式或语句,使程序完整并符合题目要求.(1)下面程序模拟了骰子地6000次投掷,用rand函数产生1~6之间地随机数face,然后统计1~6每一面出现地机会(概率)存放到数组frequency中.(2)从键盘输入10个整型数据,放入数组a 中,求其最大值、最小值及其所在元素地下标位置,并输出.(3)下面程序地功能是从键盘输入一行字符,统计其中有多少单词.假设单词之间以空格分开.(4)下面地函数Squeeze(char s[],char c)地功能是删除字符串s中所出现地与变量c相同地字符.(5)下面地函数MyStrcmp()用于实现函数strcmp()地功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符地ASCII码值之差作为函数值返回.6.4 编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和.6.5 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数地位置对换后,再输出调整后地数组.6.6 输入5×5阶地矩阵,编程实现:(1)求两条对角线上地各元素之和.(2)求两条对角线上行、列下标均为偶数地各元素之积.6.7 编程打印如下形式地杨辉三角形.11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 16.8 编程将下列矩阵中地元素向右移动一列,最右一列移至第一列.1 4 68 10 126.9 利用公式c ij=a ij+b ij计算m×n阶矩阵A和m×n阶矩阵B之和.已知a ij为矩阵A地元素,b ij 为矩阵B 地元素,c ij 为矩阵C 地元素(i =1,2,…,m ;j =1,2,…,n ).*6.10 利用公式c ij =∑=nk ik a 1*b kj 计算矩阵A 和矩阵B 之积.已知a ij 为m ×n 阶矩阵A 地元素(i =1,2,…,m ;j =1,2,…,n ),b ij 为n ×m 阶矩阵B 地元素(i =1,2,…,n ;j =1,2,…,m ),c ij 为m ×m 阶矩阵C 地元素(i =1,2,…,m ;j =1,2,…,m ).6.11 输入一行字符,统计其中地英文字符、数字字符、空格和其他字符地个数.6.12 编写一个函数Inverse(),实现将字符数组中地字符串逆序存放地功能.6.13 不用函数strcat(),编程实现字符串连接函数strcat()地功能,将字符串srcStr 连接到字符串dstStr 地尾部.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.3 / 6转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.5 / 6。

哈工大c语言试题

哈工大c语言试题

哈工大 2008 年 秋 季学期C 语言 试题考成绩和卷面笔试成绩各自所占比例折合后累加计算。

一、填空题(6分,每题1分)1.设变量定义为“int x,y[10];”,则“_________”与“*(y+x)”等效。

2.如果在程序中使用了strcmp 库函数,则程序前面要写#include "________"。

3.1.37×1042在C 语言中写作________4.把C 语言源程序翻译成机器语言目标程序的过程称为“__________”,翻译得到的目标程序扩展名为“__________”。

5.已知x 是double 型变量,“scanf("________",&x);”用于从键盘读取数据存放到x 中。

6. 已知:“#define M(x,y) x*y ”,则表达式“M(5+4,3-1)”的值为________。

二、单项选择题:(10分,每题2分)1.判断字符串s1与字符串s2相等,应当使用: 。

A) if (s1 = s2)B) if (strcmp(s1, s2))C) if (!strcmp(s1, s2)) D) if (strcmp(s1, s2) = 0)2.用“if(0<x<3) x=x+1;”实现“如果x 在0到3之间则将其值加1”的操作,________。

(A) 正确(B) 有语法错误 (C) 有逻辑错误 (D) 有连接错误3.#include<stdio.h>#include<string.h> main() {printf("%d\n", strlen("IBM\n012\t\"\\\0")); }则程序运行后的输出结果是。

A) 10 B) 11 C) 16 D) 124.函数定义的首部写作“int func( )”,x、y是int型变量,则__________是正确的调用。

哈工大C语言试题

哈工大C语言试题

哈尔滨工业大学(威海)2008/2009秋季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 平时 (30%) 总分分数试卷说明: 1. 卷面总分100分,取卷面成绩的70%计入总分;2. 选择题、填空题与写运行结果题必须在答题卡内答题;3. 答题时禁止拆开试卷钉,背面即为草稿纸;4. 答题时间105分钟。

一、单项选择题(本题16分,每小题2分)题号 1 2 3 4 5 6 7 8 答案CDCDCCDB1. C 语言源程序文件经过C 编译程序编译连接之后生成一个后缀为______的文件。

A) .c B) .obj C) .exe D) .cpp 2. 表达式 !(x>0||y>0) 等价于_____。

A) !x>0||!y>0 B) !(x>0)||!(y>0) C)!x>0&&!y>0 D) !(x>0)&&!(y>0) 3. 已知函数的调用形式:fread(buffer, size, count, fp); 其中buffer 代表的 是( )。

A) 一个整型变量,代表要读入的数据项总数 B) 一个文件指针,指向要读入的文件C) 一个指针,指向要存放读入数据的地址 D) 一个存储区,存放要读入的数据项 4. 以下不能正确定义二维数组的选项是A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}}; 5. 以下程序的输出结果是 _____。

main() {char ch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}A) \"AAAA\" B) \"BBB\" C) "BBB" D) "AAAA"号学 名 姓教研室主任签字: 注意行为规范 遵守考试纪律6. 对y在[3,23]和[100,200]范围内为真的确表达式为_____。

春季c语言期末试卷及答案

春季c语言期末试卷及答案

哈尔滨工业大学(威海)2011/2012学年春季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 综合 (30%) 总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间105分钟。

一、单项选择题。

请把答案填入下面框中,不允许出框线。

(本题16分,每小题1分)题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1. 下面程序的输出是______。

main() { int x=10,y=3;printf("%d\n",y=x/y); }A) 0 B) 1 C) 3 D) 不确定的值 2. 下列函数的功能是______。

int fun1(char *x) { char *y = x; while(*y++); return(y-x-1); }A) 求字符串的长度 B) 将字符串X 连接到字符串Y 后面 C) 将字符串X 复制到字符串Y D) 比较两个字符串的大小号学名姓注意行为规范 遵守考试纪律3. 以下对C语言函数的有关描述中,正确的是______。

A) C程序中有调用关系的所有函数必须放在同一个源程序文件中B) C函数既可以嵌套定义又可以递归调用C) 调用函数时,实参的值传送给形参D) 函数必须有返回值4. 若用数组名作为函数调用的实参,传递给形参的是______。

A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值D) 数组元素的个数5. 若有以下定义,则p+5表示_______.int a[10],*p=a;A) 元素a[5]的地址B) 元素a[5]的值C) 元素a[6]的地址D) 元素a[6]的值6. 以下选项中,与k=n++完全等价的表达式是_______。

哈工大C语言实验题

哈工大C语言实验题

哈工大C语言实验题————————————————————————————————作者:————————————————————————————————日期:ﻩQ308.(10分)第5章实验2:体型判断。

医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。

体指数计算公式是:t = w/(h*h)其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。

根据给定的体指数t计算公式,可判断你的体重属于何种类型:当t<18时,为低体重;当18≤t<25 时,为正常体重;当25≤t<27 时,为超重体重;当t≥27 时,为肥胖。

****输入提示信息格式:"Please enter h,w:\n"****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入)****输出数据格式要求:当 t<18 时,输出:"Lower weight!\n"当18≤t<25 时,输出:"Standard weight!\n"当25≤t<27时,输出:"Higher weight!\n"当t≥27 时, 输出:"Too fat!\n"#include <stdio.h>#include <stdlib.h>main(){float t,w,h;printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w);t = w/(h*h);if(t<18)printf("Lower weight!\n");else if(t>=18&&t<25)printf("Standardweight!\n");else if(t>=25&&t<27)printf("Higher weight!\n");elseprintf("Too fat!\n");return 0;}Q586.(10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。

大学c语言试题题库及答案

大学c语言试题题库及答案

大学c语言试题题库及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,正确的是:A. C语言是一种编译型语言B. C语言是一种解释型语言C. C语言是一种面向对象的语言D. C语言不支持函数答案:A2. 在C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. intD. _int答案:B4. C语言中,用于定义一个浮点型数组的语法是:A. int array[10];B. float array[10];C. char array[10];D. double array[10];答案:B5. 在C语言中,哪个运算符用于取模运算?A. %B. /C. *D. +答案:A6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A7. 在C语言中,用于定义一个字符型数组的语法是:A. int array[10];B. float array[10];C. char array[10];D. double array[10];答案:C8. C语言中,用于声明一个函数的关键字是:A. intB. floatC. voidD. return答案:C9. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. forD. while答案:C10. 在C语言中,用于定义一个字符串常量的语法是:A. "Hello"B. 'Hello'C. "Hello"[10]D. 'Hello'[10]答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以连接两个字符串。

答案:+2. C语言中的________关键字用于声明一个无返回值的函数。

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

if (ch>= '0'&&ch<= '9’)/*判断就是否就是数字*/
++a;
elseif (ch=='+'||ch==’—'||ch==’*’||ch==’%’||ch==’/'||ch=='=') /*判断就是否就是巴拉巴拉*/
++b;
else/*就是其它字符*/
++c;
}
printf("class1=%d, class2=%d, class3=%d\n",a,b,c);
程序运行示例如下:
ghdf^%^#$^&(+—//+_8*(\
class1=1,class2=7, class3=14
#include<stdio.h>
int main()

charch;
inta= 0,b = 0,c=0;
while ((ch = getchar())!=’\n')/*当读入得字符不就是换行符时*/
circumference=33、300854,area=88.247263
printfWITHwidth and precisionspecifications:
circumference = 33。30,area =88、25
#include〈stdio。h>
intmain()

const double PI=3.14159;
printf("printfWITHwidthand precisionspecifications:\n”);
ﻩprintf("circumference=%7.2f, area= %7、2f\n",2*PI*r,PI*r*r);
return 0;

写一个程序,将接收得华氏温度转换为对应得摄氏温度。程序应显示如下得提示信息:
ﻩ}
returnresult;

intmain()

intm,j,sum;
longret;
ﻩscanf("%d”,&m);
ﻩsum=0;
for(j=1;j〈=m;j=j+2)
ﻩ{
ret=Fact(j);
ﻩsum=sum+ret;
}
printf(”%d\n",sum);
ﻩreturn0;
}
键盘任意输入一下整数n,编程计算输出1~n之间得素数之与。
#include<stdio。h〉
#include<stdlib.h>
int main()
{
doublef;
double c;
printf(”Pleaseinput fahr: ");
scanf("%lf",&f);
c=5、0*(f-32.0)/9.0;
printf("Thecels is: %、2f”,c);
return 0;

从键盘输入任意得字符,按下列规则进行分类计数。
第一类:‘0',‘1’,‘2’,‘3',‘4',‘5',‘6',‘7’,‘8’,‘9’
第二类:‘+’,‘-’,‘*’,‘/’,‘%',‘='
第三类:其它字符。
输出格式要求:"class1=%d,class2=%d,class3=%d\n"
求用户输入得两个数得商,程序运行时,以如下格式输入数据:
Input twointegers:42↙
请改正程序中得错误,使它能得出正确得结果。
#include<stdio、h>
main()
{
inta, b,c;
printf("Input twointegers:");
scanf("%d,%d",&a,&b);
c= a\b;
printf("Thequotientofaandb is:%d", c);

#include〈stdio.h>
int main()

ﻩinta,b,c;
printf("Inputtwointegers:");
scanf ("%d%d",&a,&b);
ﻩc=a/b;
printf(”Thequotient of aand bis:%d\n”,c);
要求:判断素数用函数实现。
说明:素数就是不能被1与它本身以外得其它整数整除得正整数(负数、0与1都不就是素数)
输入输出示例(第一行为输入,第二行为输出):
10
17
#include <stdio。h>
#include <math.h>
int ss(int n)
{
inti;
if(n<2) return 0;
Please input fahr:
然后输入一个十进制数并回车,然后程序以合适得消息形式输出转换后得华氏温度。
程序使用如下得公式完成转换:摄氏温度 =5.0*(华氏温度–32.0)/9.0
输入格式要求:"%lf"
提示信息:"Pleaseinputfahr:”
输出格式要求:"Thecelsis: %.2f"
for (i=2;i<=(int)sqrt((double)n);i++)
if (n%i==0)return0;
double r;
printf(”Inputr:");
scanf("%lf”, &r);
printf("printf WITHOUT width orprecision specifications:\n");
printf("circumference =%f,area=%f\n",2*PI*r,PI*r*r);
ﻩreturn0;
}
使用const常量定义圆周率pi=3、14159,编程从键盘输入圆得半径r,计算并输出圆得周长与面积。输出得数据保留两位小数点。
输入格式要求:”%lf"
提示信息:”Input r:”
输出格式要求:
"printfWITHOUTwidth or precisionspecifications:\n"
"circumference = %f, area=%f\n”
"printf WITHwidth and precision specifications:\n"
"circumference=%7、2f,area = %7。2f\n”
程序运行示例如下:
Input r:5。3
printfWITHOUTwidthor precision specifications:
return0;
}
要求:
输入为一个数n;
输出为1~n得奇数得阶乘之与;
要求使用函数实现
输入输出示例(第一行为输入,第二行为stdio。h〉
long Fact(intn)

int i;
ﻩlongresult=1;
ﻩfor(i=1;i<=n;i++)

ﻩresult*=i;
相关文档
最新文档