哈工大c语言练习题教学内容.docx
- 文档编号:23280870
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:22
- 大小:19.53KB
哈工大c语言练习题教学内容.docx
《哈工大c语言练习题教学内容.docx》由会员分享,可在线阅读,更多相关《哈工大c语言练习题教学内容.docx(22页珍藏版)》请在冰豆网上搜索。
哈工大c语言练习题教学内容
哈工大c语言-练习题
求用户输入的两个数的商,程序运行时,以如下格式输入数据:
Inputtwointegers:
42↙
请改正程序中的错误,使它能得出正确的结果。
#include
main()
{
inta,b,c;
printf("Inputtwointegers:
");
scanf("%d,%d",&a,&b);
c=a\b;
printf("Thequotientofaandbis:
%d",c);
}
#include
intmain()
{
inta,b,c;
printf("Inputtwointegers:
");
scanf("%d%d",&a,&b);
c=a/b;
printf("Thequotientofaandbis:
%d\n",c);
return0;
}
使用const常量定义圆周率pi=3.14159,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。
输出的数据保留两位小数点。
输入格式要求:
"%lf"
提示信息:
"Inputr:
"
输出格式要求:
"printfWITHOUTwidthorprecisionspecifications:
\n"
"circumference=%f,area=%f\n"
"printfWITHwidthandprecisionspecifications:
\n"
"circumference=%7.2f,area=%7.2f\n"
程序运行示例如下:
Inputr:
5.3
printfWITHOUTwidthorprecisionspecifications:
circumference=33.300854,area=88.247263
printfWITHwidthandprecisionspecifications:
circumference=33.30,area=88.25
#include
intmain()
{
constdoublePI=3.14159;
doubler;
printf("Inputr:
");
scanf("%lf",&r);
printf("printfWITHOUTwidthorprecisionspecifications:
\n");
printf("circumference=%f,area=%f\n",2*PI*r,PI*r*r);
printf("printfWITHwidthandprecisionspecifications:
\n");
printf("circumference=%7.2f,area=%7.2f\n",2*PI*r,PI*r*r);
return0;
}
写一个程序,将接收的华氏温度转换为对应的摄氏温度。
程序应显示如下的提示信息:
Pleaseinputfahr:
然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。
程序使用如下的公式完成转换:
摄氏温度=5.0*(华氏温度–32.0)/9.0
输入格式要求:
"%lf"
提示信息:
"Pleaseinputfahr:
"
输出格式要求:
"Thecelsis:
%.2f"
#include
#include
intmain()
{
doublef;
doublec;
printf("Pleaseinputfahr:
");
scanf("%lf",&f);
c=5.0*(f-32.0)/9.0;
printf("Thecelsis:
%.2f",c);
return0;
}
从键盘输入任意的字符,按下列规则进行分类计数。
第一类:
‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’
第二类:
‘+’,‘-’,‘*’,‘/’,‘%’,‘=’
第三类:
其它字符。
输出格式要求:
"class1=%d,class2=%d,class3=%d\n"
程序运行示例如下:
ghdf^%^#$^&(+-//+_8*(\
class1=1,class2=7,class3=14
#include
intmain()
{
charch;
inta=0,b=0,c=0;
while((ch=getchar())!
='\n')/*当读入的字符不是换行符时*/
{
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);
return0;
}
要求:
输入为一个数n;
输出为1~n的奇数的阶乘之和;
要求使用函数实现
输入输出示例(第一行为输入,第二行为输出):
5
127
#include
longFact(intn)
{
inti;
longresult=1;
for(i=1;i<=n;i++)
{
result*=i;
}
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之间的素数之和。
要求:
判断素数用函数实现。
说明:
素数是不能被1和它本身以外的其它整数整除的正整数(负数、0和1都不是素数)
输入输出示例(第一行为输入,第二行为输出):
10
17
#include
#include
intss(intn)
{
inti;
if(n<2)return0;
for(i=2;i<=(int)sqrt((double)n);i++)
if(n%i==0)return0;
return1;
}
intmain(void)
{
inti,sum=0,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
if(ss(i))
sum+=i;
printf("%d\n",sum);
return0;
}
从键盘多次输入不同的整数n,编程计算输出1~n之间的素数之和。
要求:
1)判断素数调用函数实现;
2)用循环结构,输入5次不同的整数。
输入输出实例(奇数行为输入,偶数行为输出):
25
100
17
58
28
100
37
197
100
1060
#include
#include
intss(intn)
{
inti;
if(n<2)return0;
for(i=2;i<=(int)sqrt((double)n);i++)
if(n%i==0)return0;
return1;
}
intmain(void)
{
inti,sum=0,n;
intcounter=0;
do{
scanf("%d",&n);
counter++;
for(i=1;i<=n;i++)
if(ss(i))
sum+=i;
printf("%d\n",sum);
sum=0;
}while(counter<=4);
return0;
}
(请用一维数组完成)某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
输入格式要求:
"%d"
提示信息:
"Inputa4digitsnumber\n"
输出格式要求:
"%d"
程序运行示例如下:
Inputa4digitsnumber
1234
9876
#include
intmain()
{
intDigit[4];
intn;
inti;
intm;
printf("Inputa4digitsnumber\n");
scanf("%d",&n);
Digit[0]=n/1000;
Digit[1]=(n-1000*Digit[0])/100;
Digit[2]=(n-Digit[0]*1000-Digit[1]*100)/10;
Digit[3]=n-Digit[0]*1000-Digit[1]*100-Digit[2]*10;
for(i=0;i<=3;i++)
{
Digit[i]=(Digit[i]+5)%10;
}
m=Digit[0]+10*Digit[1]+100*Digit[2]+1000*Digit[3];
printf("%d",m);
return0;
}
(请用二维数组完成)从键盘为3*3的矩阵输入数据,找出主对角线上最大的元素,以及所在的行号。
(第一行行号为0)
**输入格式要求:
"%d"
**输出格式要求:
"max=%d,row=%d"
屏幕输入数据,输出最终结果(每个数字之间空一格):
程序运行示例如下:
123
456
789
max=9,row=2
#include
intmain()
{
inti,j;
ints[3][3];
intmax,row;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&s[i][j]);
}
}
max=s[0][0];
row=0;
for(i=0;i<3;i++)
{
if(max
{
max=s[i][i];
row=i;
}
}
printf("max=%d,row=%d",max,row);
return0;
}
计算游戏人员的年龄。
有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。
第1个人说自己10岁,问第5个人多大年纪。
输入格式:
无
输出格式:
"The5thperson'sageis%d\n"
#include
intFs(intx);
intmain()
{
intage;
intn=5;
age=Fs(n);
printf("The5thperson'sageis%d\n",age);
return0;
}
intFs(intx)
{
if(x==1)
return10;
else
return2+Fs(x-1);
}
输入一组包含10个整数的数组,找出其中的最小元素,并与第一个元素交换。
输出这个数组。
要求交换元素时调用swap_min函数。
输入输出示例(第一行为输入,第二行为输出):
22209876121713
12098761217223#include
#include
voidswap_max(int*a,int*b);
intmain()
{
inta[11];
inti,j,k;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
k=0;
for(j=0;j<10;j++)
{
if(a[j]>a[k])
{
k=j;
}
}
swap_max(&a[k],&a[0]);
printf("%d%d%d%d%d%d%d%d%d%d",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
return0;
}
voidswap_max(int*a,int*b)
{
inttemp;
temp=*a;
*a=*b;
*b=temp;
}
按照给定的函数原型编程实现两个字符串的连接(不允许使用字符串连接函数strcat)。
函数原型:
voidMystrcat(chara[],charb[]);
要求:
将字符数组a中存放的字符串连接到字符数组b中;在主函数读入两个字符串(读入的字符串可包括空格);连接之后的字符串在主函数输出;字符串长度最长为70。
输入输出样例(前两行为输入,最后一行为输出):
Hello!
Howareyou?
Howareyou?
Hello!
#include
#include
voidMystrcat(chara[],charb[]);
intmain()
{
chara[80],b[80];
gets(a);
gets(b);
Mystrcat(a,b);
puts(a);
return0;
}
voidMystrcat(chara[],charb[])
{
inti,n,m;
m=strlen(b);
n=strlen(a);
for(i=0;i { a[n+i]=b[i]; } a[m+n+1]='\0'; } 用循环结构编程,输出如下图案。 * *** ***** *** * #include #defineN5 intmain() { charm[N][N]; inti; for(i=0;i { if(i==0||i==4) { printf("%c\n",m[0][2]='*'); } elseif(i==1||i==3) { printf("%c%c%c\n",m[1][1]='*',m[1][2]='*',m[1][3]='*'); } elseif(i==2) { printf("%c%c%c%c%c\n",m[i][0]='*',m[i][1]='*',m[i][2]='*',m[i][3]='*',m[i][4]='*'); } } return0; } 有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50元: 每个男人花3元,每个女人花2元,每个小孩花1元,问男人、女人和小孩各几人? **输出格式要求: (前两行为表头格式,最后一行为输出答案格式,有几种可能答案输出几行,第一个%2d表示行号(从1开始),后三个%d分别为男人、女人、小孩的人数,按男人数递增顺序输出) "\tMEN\tWOMEN\tCHILDREN\n" "-----------------------------------------\n" "%2d: \t%d\t%d\t%d\n" #include #defineN30 intmain() { intman,woman,child; intr=0; printf("\tMEN\tWOMEN\tCHILDREN\n"); printf("-----------------------------------------\n"); for(man=0;man { for(woman=0;woman { child=N-man-woman; { if(3*man+2*woman+1*child==50) { r++; printf("%2d: \t%d\t%d\t%d\n",r,man,woman,child); } } } } return0; } 按如下函数原型,用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。 其中,n由用户从键盘输入。 已知n值不超过10。 voidTranspose(inta[][N],intn); voidInputMatrix(inta[][N],intn); voidPrintMatrix(inta[][N],intn); 输入提示信息要求: "Inputn: \n" 输入格式: "%d" 输出提示信息: "Thetransposedmatrixis: \n" 输出要求: "%d\t" 输出矩阵时,每输出一行就换行 注: 不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程 输入输出示例: Inputn: 2 11 02 Thetransposedmatrixis: 10 12 #include #defineN10 voidTranspose(intm[][N],intn); voidInputMatrix(intm[][N],intn); voidPrintMatrix(intm[][N],intn); intmain() { intn; intm[N][N]; printf("Inputn: \n"); scanf("%d",&n); InputMatrix(m,n); Transpose(m,n); printf("Thetransposedmatrixis: \n"); PrintMatrix(m,n); return0; } voidInputMatrix(intm[][N],intn) { inti,j; for(i=0;i { for(j=0;j { scanf("%d",&m[i][j]); } } } voidPrintMatrix(intm[][N],intn) { inti,j; for(i=0;i { for(j=0;j { printf("%d\t",m[i][j]); } printf("%d",m[i][n-1]); printf("\n"); } } voidTranspose(intm[][N],intn) { inti,j; inttemp; for(i=0;i { for(j=0;j { temp=m[i][j]; m[i][j]=m[j][i]; m[j][i]=temp; } } } 从键盘任意输入一个字符串(字符串可以有空格), 在给定的一组字符串中寻找该输入字符串, 若找到,则打印该字符串,否则打印"Notfind! "。 注意: (1)请提交修改正确后的完整源程序代码。 (2)对于没有错误的语句,请不要修改 #include #include main() { inti,findFlag=1; charx; charstr[][13]={"Pascal","Basic","Fortran","Java","VisualC","VisualBasic"}; printf("Inputstring: \n"); gets(x); while(i<6&&! findFlag) { if(x=str[i]) { findFlag=0; } i++; } if(! findFlag) { printf("%s\n",x); } else { printf("Notfind! \n"); } } #include #include intmain() { inti=0,f=1; charm[13]; charstr[][13]={"Pascal","Basic","Fortran","Java","VisualC","VisualBasic"}; printf("Inputstring: \n"); gets(m); while(i<6&&f==1) { if(strcmp(m,str[i])==0) { f=0; } i++; } if(f==0) { printf("%s\n",m); } else { printf("Notfind! \n"); } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 语言 练习题 教学内容