搜档网
当前位置:搜档网 › 哈工大C语言实验题

哈工大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

#include

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("Standard weight!\n");

else if(t>=25&&t<27)

printf("Higher weight!\n");

else

printf("Too fat!\n");

return 0;

}

Q586.(

10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。

**输入格式要求:"%d,%d" 提示信息:"Please enter year,month:"

**输出格式要求:"%d is leap year\n" "%d is not leap year\n" "The season is spring/summer/autumn/winter" "The number of days of this month is %d\n"

程序运行示例如下:

实例1:

Please enter year,month:2012,11

2012 is leap year

The season is autumn

The number of days of this month is 30

实例2:

Please enter year,month:2013,12

2013 is not leap year

The season is winter

The number of days of this month is 31

#include

#include

main()

{

int year=0,leap=0,mon=0,day=0;

printf("Please enter year,month:");

scanf("%d,%d",&year,&mon);

if((year%100!=0&&year%4==0)||(year%100==0&&year%400==0)){ printf("%d is leap year\n",year);

leap=1;

}

else

printf("%d is not leap year\n",year);

switch(mon)

{

case 1:

case 2:

case 12:printf("The season is winter\n");

break;

case 3:

case 4:

case 5:printf("The season is spring\n");

break;

case 7:

case 8:printf("The season is summer\n"); break;

case 9:

case 10:

case 11:printf("The season is autumn\n"); break;

}

switch(mon)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:day=31;

break;

case 4:

case 6:

case 11:day=30;

break;

case 2:

if(leap==1)

day=29;

else

day=28;

}

printf("The number of days of this month is %d\n",day);

}

Q3161.(10分)请用else if多分支条件判断语句编程设计一个简单的计算器程序。要求:

(1)请用户按以下形式从键盘输入表达式:操作数①运算符op 操作数②

(2)然后计算表达式的值

**输入提示信息**:无

**输入数据格式**:"%f%c%f"

**输出数据格式**:"%.2f%c%.2f=%.2f\n"

若若输入的运算符是除法运算符/,当除数为0时,输出数据格式为:"dat is 0!Error!\n"

若输入的运算符不是加(+)、减(-)、乘(*)、除(/),则输出数据格式为:"Error!\n"

[友情提示]:

①用户输入的运算符为算术运算符:加(+)、减(-)、乘(*)、除(/)。用字符变量 op 表示;

②操作数①和操作数②为浮点型数据,分别用浮点型变量 dat1、dat2表示。

③程序运行结果如下所示:

1+2↙

1.00+

2.00=

3.00

#include

#include

main()

{

float a=0,b=0;

char op;

scanf("%f%c%f",&a,&op,&b);

if(op=='+')

printf("%.2f%c%.2f=%.2f\n",a,op,b,a+b);

else if(op=='-')

printf("%.2f%c%.2f=%.2f\n",a,op,b,a-b);

else if(op=='*')

printf("%.2f%c%.2f=%.2f\n",a,op,b,a*b);

else if(op=='/'){

if(b!=0)

printf("%.2f%c%.2f=%.2f\n",a,op,b,a/b);

else

printf("dat is 0!Error!\n");

}

else

printf("Error!\n");

}

Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。

转换规则为(要求用switch语句实现):

当score大于等于90且小于等于100时,grade=A;

当score大于等于80且小于90时,grade=B;

当score大于等于70且小于80时,grade=C;

当score大于等于60且小于70时,grade=D;

当score大于等于0且小于60时,grade=E。

格式要求:

输入提示:"Please enter score:"

输出形式形如:"100--A"、"75--C"、"0--E"

当输入分数不正确时,输出:"Input error!

"

#include

main()

{

int s,m;

printf("Please enter score:"); scanf("%d",&s);

m=s<0||s>100?-1:s/10;

switch(m)

{

case 10:

case 9:printf("%d--A\n",s); break;

case 8:printf("%d--B\n",s); break;

case 7:printf("%d--C\n",s); break;

case 6:printf("%d--D\n",s); break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:printf("%d--E\n",s);

break;

default:printf("Input error!");

}

}

Q221.(10分)编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。

**输入格式要求:"%d, %d" 提示信息:"Input year,month:"

**输出格式要求:"31 days\n" "29 days\n" "28 days\n" "Input error!\n"

程序运行示例如下:

Input year,month:2004,2

29 days

#include

main()

{

int a, b;

printf("Input year,month:");

scanf("%4d, %2d", &a, &b);

switch (b)

{

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 ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0) printf("29 days\n");

else

printf("28 days\n");

break;

default:

printf("Input error!\n");

}

return 0;

}

Q210.(10分)第7章实验任务1:

所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,

调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:

从键盘输入5,5是素数则打印如下信息:"5 is a prime number".

又如:从键盘输入4, 4不是素数则打印如下信息:"4 is not a prime number" 负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数

要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序

不给分。Fun()函数原型如下:

int Fun(int m);

**输入数据提示信息:"Please input a number:\n"

注:该提示信息请放在循环体外

**输入数据格式为:"%d"

**输出格式要求:

若是素数输出数据格式为:"%d is a prime number\n"

若不是素数输出数据格式为: "%d is not a prime number\n" #include

#include

int Fun(int m);

main()

{

int a;

printf("Please input a number:\n");

while (scanf("%d",&a))

{

if (a <= 0 || a == 1)

continue;

else if (a > 0 && a != 1 && Fun(a) == 1)

printf("%d is a prime number\n",a);

else

printf("%d is not a prime number\n", a);

break;

}

return 0;

}

int Fun(int m)

{

int i, result;

result = 1;

if (m != 2)

{

for (i = 2; i < m; i++)

{

if (m % i == 0)

{

result = 0;

break;

}

}

}

return result;

}

Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。

转换规则为(要求用switch语句实现):

当score大于等于90且小于等于100时,grade=A;当score大于等于80且小于90时,grade=B;

当score大于等于70且小于80时,grade=C;

当score大于等于60且小于70时,grade=D;

当score大于等于0且小于60时,grade=E。

格式要求:

输入提示:"Please enter score:"

输出形式形如:"100--A"、"75--C"、"0--E"

当输入分数不正确时,输出:"Input error!

"

#include

main()

{

int s,m;

printf("Please enter score:");

scanf("%d",&s);

m=s<0||s>100?-1:s/10;

switch(m)

精品文档 {

case 10:

case 9:printf("%d--A\n",s);

break;

case 8:printf("%d--B\n",s);

break;

case 7:printf("%d--C\n",s);

break;

case 6:printf("%d--D\n",s);

break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0:printf("%d--E\n",s);

break;

default:printf("Input error!");

}

}

Q1709.(10分)第6章实验1:国王的许诺

相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问:国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)?

注:(1)不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。

(2)用标准C语言编程,所有变量必须在第一条可执行语句前定义。

(3)输入输出格式要和以下给定格式完全一致。

**输入格式:无

**输出格式:

"sum = %e\n"

"volum = %e\n"

%e表示double类型

#include

#include

main()

{

int i;

double s, v;

s = 0;

for (i = 0; i <= 63; i++)

s = s + pow(2, i);

v = s / 1.42e8;

printf("sum = %e\n", s);

printf("volum = %e\n", v);

return 0;

}

Q1719.(10分)第7章实验任务3

从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和输入提示信息:"Input n:"

输入格式:"%d"

输出格式:"sum = %d\n"

#include

#include

int Fun(int m);

main()

{

int n,i,s;

s=0;

printf("Input n:");

scanf("%d",&n);

for(i=2;i<=n;i++)

{

if(Fun(i)==1)

s=s+i;

}

printf("sum = %d\n",s); return 0;

}

int Fun(int m)

{

int i, result;

result = 1;

if (m != 2)

{

for (i = 2; i < m; i++) {

if (m % i == 0)

{

result = 0;

break;

}

}

}

return result;

}

Q1720.(10分)第7章实验任务6

从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"It is a prime number"。例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出"It is a prime number"。

输入提示信息:"Input m:"

输入格式:"%d"

输出格式:

是素数时输出"It is a prime number\n"

否则输出用"%d = ","%d * "

运行示例1:

Input m:90↙

90 = 2 * 3 * 3 * 5

运行示例2:

Input m:13↙

It is a prime number

#include

int Fun(int m);

哈工大c语言 练习题

求用户输入得两个数得商,程序运行时,以如下格式输入数据: Input twointegers:42↙ 请改正程序中得错误,使它能得出正确得结果。 #include<stdio、h> main() { inta, b, c; printf("Input two integers:"); scanf("%d,%d",&a, &b); c= a\b; printf("Thequotient ofaandbis:%d", c); } #include〈stdio.h> int main() { ?inta,b,c; printf("Inputtwointegers:"); scanf ("%d%d",&a,&b); ?c=a/b; printf(”The quotient of a and b is:%d\n”,c); ?return 0; } 使用const常量定义圆周率pi=3、14159,编程从键盘输入圆得半径r,计算并输出圆得周长与面积。输出得数据保留两位小数点。输入格式要求:”%lf" 提示信息:”Input r:” 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area= %f\n”"printf WITHwidth and precision specifications:\n" "circumference=%7、2f, area = %7。2f\n” 程序运行示例如下: Input r:5。3 printf WITHOUT width or precision specifications: circumference =33、300854,are a=88.247263 printf WITHwidthand precision specifications: circumference = 33。30, area = 88、25 #include〈stdio。h> int main() { const double PI=3.14159; double r; printf(”Inputr:"); scanf("%lf”, &r); printf("printf WITHOUT width orprecision specification s:\n"); printf("circumference = %f, area= %f\n",2*PI*r,PI*r*r); printf("printf WITHwidth and precisionspecifications:\n”); ?printf("circumference=%7.2f, area =%7、2f\n",2*PI*r,PI*r*r); return 0; } 写一个程序,将接收得华氏温度转换为对应得摄氏温度。程序应显示如下得提示信息: Please inputfahr: 然后输入一个十进制数并回车,然后程序以合适得消息形式输出转换后得华氏温度。程序使用如下得公式完成转换:摄氏温度= 5.0 *(华氏温度–32.0)/ 9.0 输入格式要求:"%lf" 提示信息:"Pleaseinput fahr: ” 输出格式要求:"Thecelsis: %.2f" #include <stdio。h〉 #include<stdlib.h> int main() { doublef; double c; printf(”Please input fahr: "); scanf("%lf",&f); c=5、0*(f-32.0)/9.0; printf("Thecels is: %、2f”,c);

哈工大C语言课程设计

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计说明书(论文) 课程名称:C语言课程设计 设计题目:音乐程序与波特图 院系:航天学院控制科学与工程系 班级: 设计者: 学号: 指导教师: 设计时间: 哈尔滨工业大学教务处 哈尔滨工业大学课程设计任务书

题目一 1.1题目详细描述: 播放音乐程序,实现了自选音乐曲目和直接使用键盘弹奏,而且可以在曲目播放结束后循环选择乐曲。 1.2程序设计思路及流程图: 1.3 #include #include #include #include #include #include #define N1 16 #define N2 8 #define N4 4 #define N8 2 #define N16 1 #define END 0 void playmusic(int n,int *c); void typemusic(); enum NOTES{ C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,

C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494, C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988, C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976,S=10 }; typedef enum NOTES SONG; SONG song1[]={C0,N4+N2,E0,N4,G0,N2,G0,N2,A0,N1,G0,N1,E0,N4+N2, C0,N4,G0,N1/3,G0,N1/3,G0,N1/3,E0,N1,C0,N1,G10,N1/3,G10,N1/3, G10,N1/3,G10,N1/3,G10,N1/3,G10,N1/3,C0,N1,END,END}; SONG song2[]={A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1,E1,N1,B0,N1+N1,S,N1,E0,N1, A0,N1+N2,G0,N2,A0,N1,C1,N1,G0,N1+N1,S,N1,E0,N2,E0,N2,F0, N1+N2,E0,N2,F0,N1,C0,N1,E0,N1+N1,S,N1,C1,N2,C1,N2,B0,N1+N2,370, N2,F0,N1,B0,N1,B0,N1+N2,S,N1,A0,N2,B0,N2,C1,N1+N2,B0,N2,C1,N1, E1,N1,B0,N1+N2,END,END}; int main() { int m,n,c=1; char b='y'; while(b=='y') { printf("Hello,what do you want to do by this program?\n"); printf("1.Listen to music.-------Press 1\n"); printf("2.Play music by yourself.-------Press 2\n"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3) /*选择方式*/ { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&m); } if(m==1) { printf("I have two musics,choose one!(Press 1/2)\n"); scanf("%d",&n); while(n!=1&&n!=2) { printf("You typed wrong!Do not push me around.:(\n"); scanf("%d",&n); } playmusic(n,&c); } else if(m==2) { typemusic(); } getchar(); printf("Do you want to continue?(y/n)\n"); scanf("%c",&b);

哈工大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 #include 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("Standard weight!\n"); else if(t>=25&&t<27) printf("Higher weight!\n");

哈工大c语言 练习题

求用户输入的两个数的商,程序运行时,以如下格式输入数据: Input two integers:4 2↙ 请改正程序中的错误,使它能得出正确的结果。 #include <> main() { int a, b, c; printf("Input two integers:"); scanf("%d,%d", &a, &b); c = a\b; 、 printf("The quotient of a and b is :%d", c); } # include <> int main () { int a,b,c; printf ("Input two integers:"); scanf ("%d %d",&a,&b); c=a/b; printf ("The quotient of a and b is :%d\n",c); > return 0; } 使用const常量定义圆周率pi=,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。输出的数据保留两位小数点。 输入格式要求:"%lf" 提示信息:"Input r:" 输出格式要求: "printf WITHOUT width or precision specifications:\n" "circumference = %f, area = %f\n" "printf WITH width and precision specifications:\n" ~ "circumference = %, area = %\n" 程序运行示例如下: Input r:printf WITHOUT width or precision specifications: circumference = , area = printf WITH width and precision specifications: circumference = , area = #include <> int main() ~ { const double PI=; double r; printf("Input r:"); scanf("%lf", &r); printf("printf WITHOUT width or precision specifications:\n"); printf("circumference = %f, area = %f\n",2*PI*r,PI*r*r); printf("printf WITH width and precision specifications:\n"); printf("circumference = %, area = %\n",2*PI*r,PI*r*r); return 0; | } 写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: Please input fahr: 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度= *(华氏温度–)/ 输入格式要求:"%lf" 提示信息:"Please input fahr: " 输出格式要求:"The cels is: %.2f" #include <> | #include <> int main() { double f; double c;

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

习题6 6.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 编程打印如下形式地杨辉三角形. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 6.8 编程将下列矩阵中地元素向右移动一列,最右一列移至第一列. 1 4 6 8 10 12 6.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 =∑=n k 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 地尾部.

大学MOOC哈工大C语言程序设计精髓第六周编程题答案

大学M O O C哈工大C语言程序设计精髓第六周 编程题答案 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出?Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 #include<> #include <> int main() { char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue;

} else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90) {

哈工大C语言2015年试卷

哈工大二〇一五年春季学期 C 语言与数据结构 试 题 题号 一 二 三 四 五 六 七 八 九 十 十一 十二 总分 分数 学号 姓名 一、填空题。(每题2分,共14分) 1.列举出三种逻辑运算符_____、_____、_____。 2.多分支选择语句中switch 后面括号的表达式的值的类型应为___________。 3.以有符号的十进制整数形式输入变量a ,则该语句为______________________。 4.初始化二维数组 int a[2][3]; 则*a 表示____________________。 5.for(i=1,sum=0;i<100;i++) sum=sum+i;该语句运行结束后,sum 的值为_____。 6.C 语言规定标识符的第一个字符必须为_________或_________。 7.定义结构体变量如下:struct stu student1,*p ;则引用结构体成员num 的方法多种,请写出任意两种_______________________________ ____________________________________________________________________。 二、画出三种基本结构的流程图 (6分)

三、在二维数组中,若某一位置上的元素在该行中最小,而在该列中最大,则该元素即为该二维数组的鞍点。要求输入一个二维数组,当鞍点存在时,把鞍点找出来并输出。(10分)

四、有一个函数: 5(0)21(08)4(8)x x y x x x x

中国大学MOOC 哈工大 C语言程序设计精髓第六周编程题答案

6.1 下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 #include #include int main() { char score[100]; int flag = 0, i, s; char grade; printf("Please input score:\n"); while (1) { flag=0; scanf("%s", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue; } else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf("Input error!\n"); printf("Please input score:\n"); continue; } else{ break; } } s = atoi(score); if (s >= 90)

grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf("grade: %c\n", grade); return 0; } 6.2 编程计算a+aa+aaa+…+aa…a(n个a)的值(4分) 题目内容: 编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。例如,当n=4,a=2,表示计算2+22+222+2222的值。 #include #include int main() { int n,a,i,j; double p=0,q=0; printf("Input a,n:\n"); scanf( "%d,%d",&a,&n); for(i=1;i<=n;i++) { for(j=0,p=0;j

哈工大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 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"); else printf("Too fat!\n"); return 0; }

哈工大 C语言程序设计精髓 MOOC慕课 6-12周编程题答案

6.1 "/*下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 */ #include #include int main() { char score[100]; int flag = 0, i, s; char grade; printf(""Please input score:\n""); while (1) { flag=0; scanf(""%s"", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') {

continue; } else { flag = 1; break; } } s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf(""Input error!\n""); printf(""Please input score:\n""); continue; } else{ break; } } s = atoi(score);

if (s >= 90) { grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else { grade = 'E'; } printf(""grade: %c\n"", grade);

哈工大C语言实验题完整版

哈工大C语言实验题标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

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 #include

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("Standard weight!\n"); else if(t>=25&&t<27) printf("Higher weight!\n"); else printf("Too fat!\n"); return 0; }

哈工大计算机复试C语言复习笔记

哈工大计算机专业考研复试 C语言复习笔记 参考资料:C语言程序设计第三版(苏小红),高等教育出版社C语言程序设计学习指导(苏小红),高等教育出版社 适合于有一定C语言基础的学者 编译环境:CodeBlocks 2018年2月28日

目录 哈工大计算机专业考研复试C语言复习笔记 (1) 第一章为什么要学C语言 (3) 第二章C语言数据类型 (3) 第三章简单的算术运算和表达式 (4) 第四章键盘输入和屏幕输出 (5) 第五章选择控制结构 (6) 第六章循环控制结构 (8) 第七章函数 (9) 第八章数组 (9)

第一章为什么要学C语言 不为什么,因为考试要考。 第二章C语言数据类型 C语言标识符命名规则 只能以英文字母、数字、下划线组成; 必须以字母、下划线开头; 不允许使用关键字命名; 有最大长度限制。 Sizeof的使用,返回数组的总大小,从下面的程序可以看出在32位系统中,一个char类型字符占1字节,int和float占4字节,double占8字节。在16位系统中,int类型占两个字节。 这个现象非常奇妙,区分C++中两种声明字符串的方法。 Char c[] = “hello world”;语句以字符数组的形式存储字符串,sizeof(c)返回的是该字符数组中包括’\0’的所有字符个数,这种声明方式下要获取字符串长度要用strlen() [其实可以理解为C 语言的方式]; String s = “hello”;语句可以理解为类似于链表的声明结构,s只代表该字符串的起始单元地址,故sizeof(s)只有4个字节,这种声明方式下获取字符串长度要用.length() [其实可以理解为C++的方式,对象引用]; strlen()与length()的适用对象不能互换,strlen()要引用头文件string.h。 对于其他类型数组,想要获取数组长度,下面的语句是最快的方式: Int len = sizeof(array) / sizeof(ElemType);

哈工大c语言程序设计精髓mooc慕课6-12周编程题答案

"/*下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。 */ #include<> #include <> int main() { char score[100]; int flag = 0, i, s; char grade; printf(""Please input score:\n""); while (1)

{ flag=0; scanf(""%s"", score); for (i = 0; i < strlen(score); i++) { if (score[i] >= '0' && score[i] <= '9') { continue; } else { flag = 1; break; } }

s = atoi(score); if (s < 0 || s > 100 || flag == 1) { printf(""Input error!\n""); printf(""Please input score:\n""); continue; } else{ break; } } s = atoi(score); if (s >= 90) {

grade = 'A'; } else if (s >= 80) { grade = 'B'; } else if (s >= 70) { grade = 'C'; } else if (s >= 60) { grade = 'D'; } else

哈工大 C语言实验报告(答案)

实验1简单C 程序设计2、将下列由程序流程图描述的算法,转换为C 源代码并填写到图1-3b 框中,然后输入计算机并运行后并分析其运行结果(本小题2分)。 图1-3a 程序流程图 图1-3b C 源程序3、项目编程(本小题12分) (1)请向计算机输入a,b,c 三个值,经过程序处理后,要求输出其中最大的一个。 /*C 语言源代码*/ main() { }

项目要求:①画出程序流程图;②根据流程图编写程序 图1-4a 程序流程图图1-4b C 源程序 (2)请向计算机输入a,b,c 三个值,经过程序处理后,要求按值从小到大输出。 项目要求:①画出程序流程图;② 根据流程图编写程序/*输出最大值*/ main() { }

项目提示:①可采用if结构;②a,b,c由scanf函数输入程序流程图/*将a,b,c三个值由小到大输出*/ main() { } 1-5a程序流程图图1-5b C源程序 (3)编程实现打印下列由字母组成的树形。 说明:本项目编程的知识点是让学生对双 重循环语句结构的理解,清楚双重循环的特点 (即当外循环变量中的值变化一次时,则内循 环变量中的值要变化若干次)。 提示:可用外循环变量代表行数;内循环

变量代表需打印字符的个数。 难点:①字符个数是按奇数变化递增 ②左右边界字符打印的位置 图1-6a字母A-G组成的树形 /*打印图形*/ main() { } 图1-6b C源程序 (4)设计报选体育科目统计程序 设某学校在新生入学时,需报选体育选修科目。体育科目包括:篮球、排球、体操、兵乓球和网球。请为某班级(30人)统计报选各体育科目人数。 项目要求:①画出程序流程图;②根据流程图编写源程序

哈工大C语言试题

哈尔滨工业大学(威海)2008/2009秋季学期 C 语言程序设计 笔试试题(A 卷) 题号 一 二 三 四 五 六 笔试(70%) 平时 (30%) 总分 分数 试卷说明: 1. 卷面总分100分,取卷面成绩的70%计入总分; 2. 选择题、填空题与写运行结果题必须在答题卡内答题; 3. 答题时禁止拆开试卷钉,背面即为草稿纸; 4. 答题时间105分钟。 一、单项选择题(本题16分,每小题2分) 题号 1 2 3 4 5 6 7 8 答案 C D C D C C D B 1. 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" 号 学 名 姓 教研室主任签字: 注意行为规范 遵守考试纪律

哈工大C语言试题

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

注的文编译程序编译连接之后生成一个后缀为______1. C语言源程序文件经过C意件。行D) .cpp C) .exe B) .obj A) .c 为。!(x>0||y>0) 等价于_____2. 表达式规D) !(x>0)&&!(y>0) B) !(x>0)||!(y>0) C)!x>0&&!y>0 A) !x>0||!y>0 范其中buffer代表的3. 已知函数的调用形式:fread(buffer, size, count, fp); )。是( A) 一个整型变量,代表要读入的数据项总数遵B) 一个文件指针,指向要读入的文件守一个指针,指向要存放读入数据的地址C) 考一个存储区,存放要读入的数据项D) 试以下不能正确定义二维数组的选项是4. 纪 a[][2]={1,2,3,4}; B) int }; A) int 律4}}; D) int a[2][2]={{1},2,3}; C) int 5. 以下程序的输出结果是_____。 main() { char ch[3][5]={AAAA,BBB,CC}; 教研室主任签字:printf(\\%s\\ ,ch[1]); } A) \AAAA\ B) \BBB\ C) BBB D) AAAA 精品文档. 精品文档 6. 对y在[3,23]和[100,200]范围内为真的确表达式为_____。 A) (y>=3)&&(y<=23)&&(y>=100)&&(y<=200) B) (y>=3)||(y<=23)||(y>=100)||(y<=200) C) (y>=3)&&(y<=23)||(y>=100)&&(y<=200) D) (y>=3)||(y<=23)&&(y>=100)||(y<=200) 7. 设有如下结构定义: struct addr { char name[30]; char street[40]; char city[20]; char office[30]; char phone[10]; int age;

哈工大C语言程序设计作业

1、用函数编程实现两个数组中对应该元素值的交换(数组的长度定义成5)。Output array a: 1 2 3 4 5 Output array b: 6 7 8 9 10 #include #include void Exchange(int a[],int b[]); int main() { int i ,a[5],b[5]; for (i=0;i<5;i++) scanf("%5d",&a[i]); for (i=0;i<5;i++) scanf("%5d",&b[i]); Exchange(a[i],b[i]); for (i=0;i<5;i++) printf("%5d",a[i]); printf("\n"); for (i=0;i<5;i++) printf("%5d",b[i]); printf("\n"); return 0; } void Exchange(int a[],int b[]) { int temp,i; for (i=0;i<5;i++) { temp=a[i]; a[i]=b[i]; b[i]=temp; } } 2、从键盘任意输入10个整数,将其中最大数与最小数的位置对换,然后输出对换后的10个数。[提示:用一维数组存放这10个数] 输入要求: "%d", 输入的数据用空格作分隔符。详见输入样例。 输出要求: "%d ",输出的数据用空格作分隔符。详见输出样例。 输入输出样例: 输入:2 10 4 3 5 6 7 8 1 9 输出:2 1 4 3 5 6 7 8 10 9 输入:1 6 2 3 4 5 9 7 8 10 输出: 10 6 2 3 4 5 9 7 8 1 #include #include void Exchange (int a[],int n); int FindMax(int s[],int n); int FindMin(int s[],int n); int main() { int i ,a[10]; for (i=0;i<10;i++) {

哈工大计算机考研复试c语言上机试题及答案

哈工大计算机考研复试c语言上机试题及答案2012年: 题目描述: 一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每 天给你10 万元,你第一天给我1 分钱,第二天2 分钱, 第三天4 分钱…… 这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?,注意一个是万 元,一个是分, 输入: 该题没有输入 输出: 输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元 作单位,陌生人交出的钱以分作单位。 参考答案: #include #include void main() { int sum_a=0, per_day_1=10; //富人总共得到的money long sum_b=0, per_day_2=1; int i ; for(i=0; i<30; i++)

{ sum_a+=per_day_1; sum_b+=per_day_2; per_day_2 *= 2; } printf("%d %ld\n",sum_a,sum_b); } 题目描述: 不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char dstStr[],charsrcStr[]) 输入: 两个字符串,字符串由小写字母组成。 输出: 链接后的字符串 样例输入: hello world good morning 样例输出: helloworld goodmorning 参考答案: #include #include void MyStrCat(char dstStr[], char srcStr[]) {

哈尔滨工业大学2018年计算机科学与技术学院《C语言程序设计》考试大纲

哈尔滨工业大学2018年计算机科学与技术学院《C语言程序设计》 考试大纲 一、考试要求 要求考生掌握用计算机处理问题的思维方法,掌握C语言的基本语法、基本控制结构、常用的算法、问题求解方法和程序设计方法,具备综合运用所学知识独立解决与计算相关的工程技术问题的程序设计、实现和调试能力。 二、考试内容 1)问题的抽象、建模和算法描述 a:算法的基本概念 b:算法的流程图描述方法 2)基本控制结构 a:选择结构的三种控制方式(单分支、双分支、多分支) b:循环结构的三种控制方式(计数控制、条件控制和标记控制的循环) c:流程转移控制的基本方法 d:基本控制结构的嵌套 3)函数和常用的问题求解方法 a:函数定义,函数调用,函数原型,函数的参数传递,防御式编程 b:分治与递归,函数的递归调用,递归函数的设计方法 c:枚举(即穷举) d:递推(正向递推、反向逆推) 4)数组和常用的算法 a:一维数组和二维数组的定义、初始化和引用 b:一维数组、二维数组做函数参数向函数传递一维数组和二维数组 c:字符数组或字符指针做函数参数向函数传递字符串 d:常用的字符串处理操作(字符串的复制、连接、比较、计算长度、插入字符、删除字符、精确匹配等) e:常用的排序算法(选择排序、交换排序、冒泡排序) f:常用的查找算法(顺序查找、折半查找) 5)指针 a:指针变量的定义、初始化和解引用 b:指针变量做函数参数

c:指针数组 d:函数指针 6)结构体和共用体 a:结构体变量、结构体数组和结构体指针的定义和初始化,结构体成员和嵌套的结构体成员的访问b:结构体变量、结构体数组或结构体指针做函数参数向函数传递结构体 c:共用体类型 d:结构体和共用体占内存的字节数,内存对齐 e:动态内存分配函数和动态数据结构,单向链表的基本操作 7)文件操作 a:文件的打开和关闭 b:二进制文件和文本文件 c:文件的顺序读写 三、试卷题型结构 a:单项选择题(10分) b:写出程序运行结果题(10分) c:程序填空题(10分) d:程序改错题(10分) e:编程题(35分) 四、参考书目 1.苏小红,王宇颖,孙志岗等,C语言程序设计(第3版),高等教育出版社,2015.08 2.苏小红,车万翔,王甜甜,C语言程序设计学习指导(第3版),高等教育出版社,2015.09文章来源:文彦考研

相关主题