哈工大c语言 练习题_第1页
哈工大c语言 练习题_第2页
哈工大c语言 练习题_第3页
哈工大c语言 练习题_第4页
哈工大c语言 练习题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、求用户输入的两个数的商,程序运行时,以如下格式输入数据:Input two integers:4 2请改正程序中的错误,使它能得出正确的结果。#include <stdio.h>main() int a, b, c; printf("Input two integers:"); scanf("%d,%d", &a, &b); c = ab; printf("The quotient of a and b is :%d", c);# include <stdio.h>int main ()int

2、a,b,c;printf ("Input two integers:");scanf ("%d %d",&a,&b);c=a/b;printf ("The quotient of a and b is :%dn",c);return 0;使用const常量定义圆周率pi=3.14159,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。输出的数据保留两位小数点。输入格式要求:"%lf" 提示信息:"Input r:"输出格式要求:"printf WITHOUT wid

3、th or precision specifications:n" "circumference = %f, area = %fn" "printf WITH width and precision specifications:n" "circumference = %7.2f, area = %7.2fn"程序运行示例如下:Input r:5.3printf WITHOUT width or precision specifications:circumference = 33.300854, area = 88.247

4、263printf WITH width and precision specifications:circumference = 33.30, area = 88.25#include <stdio.h>int main() const double PI=3.14159;double r; printf("Input r:"); scanf("%lf", &r); printf("printf WITHOUT width or precision specifications:n");printf("

5、circumference = %f, area = %fn",2*PI*r,PI*r*r); printf("printf WITH width and precision specifications:n");printf("circumference = %7.2f, area = %7.2fn",2*PI*r,PI*r*r);return 0;写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: Please input fahr: 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使

6、用如下的公式完成转换:摄氏温度 = 5.0 *(华氏温度 32.0) / 9.0输入格式要求:"%lf" 提示信息:"Please input fahr: "输出格式要求:"The cels is: %.2f"#include <stdio.h>#include <stdlib.h>int main()double f;double c;printf("Please input fahr: ");scanf("%lf",&f);c=5.0*(f-32.0)/9.0

7、;printf("The cels is: %.2f",c);return 0;从键盘输入任意的字符,按下列规则进行分类计数。第一类:0, 1, 2, 3, 4, 5, 6, 7, 8, 9第二类:+, -, *, /, %, =第三类:其它字符。输出格式要求:"class1=%d, class2=%d, class3=%dn"程序运行示例如下:ghdf%#$&(+-/+_8*(class1=1, class2=7, class3=14#include <stdio.h>int main() char ch; int a = 0,b

8、= 0,c = 0; while (ch = getchar() != 'n') /*当读入的字符不是换行符时*/ if (ch >= '0' && ch <= '9') /*判断是否是数字*/ +a; else if (ch = '+'|ch = '-'|ch = '*'|ch = '%'|ch = '/'|ch = '=') /*判断是否是巴拉巴拉*/ +b; else /*是其它字符*/ +c; printf(&quo

9、t;class1=%d, class2=%d, class3=%dn",a,b,c); return 0;要求:输入为一个数n;输出为1n的奇数的阶乘之和;要求使用函数实现输入输出示例(第一行为输入,第二行为输出):5127#include<stdio.h>long Fact(int n)int i;long result=1;for(i=1;i<=n;i+)result*=i;return result;int main()int m,j,sum;long ret;scanf("%d",&m);sum=0;for(j=1;j<=m

10、;j=j+2) ret=Fact(j); sum=sum+ret;printf("%dn",sum);return 0;键盘任意输入一下整数n,编程计算输出1n之间的素数之和。要求:判断素数用函数实现。说明:素数是不能被1和它本身以外的其它整数整除的正整数(负数、0和1都不是素数)输入输出示例(第一行为输入,第二行为输出):1017#include <stdio.h>#include <math.h>int ss(int n) int i;if(n<2) return 0; for (i=2; i<=(int)sqrt(double)n)

11、; i+) if (n%i=0) return 0; return 1;int main(void) int i,sum=0,n; scanf("%d",&n); for (i=1; i<=n; i+) if(ss(i) sum+=i; printf("%dn",sum); return 0;从键盘多次输入不同的整数n,编程计算输出1n之间的素数之和。要求:1)判断素数调用函数实现;2)用循环结构,输入5次不同的整数。输入输出实例(奇数行为输入,偶数行为输出):25100175828100371971001060#include <s

12、tdio.h>#include <math.h>int ss(int n) int i;if(n<2) return 0; for (i=2; i<=(int)sqrt(double)n); i+) if (n%i=0) return 0; return 1;int main(void) int i,sum=0,n; int counter=0; do scanf("%d",&n); counter+; for (i=1; i<=n; i+) if(ss(i) sum+=i; printf("%dn",sum)

13、; sum=0; while(counter<=4); return 0;(请用一维数组完成)某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上 5, 然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。输入格式要求:"%d" 提示信息:"Input a 4 digits numbern"输出格式要求:"%d"程序运行示例如下:Input a 4 digits number12349876#include <stdio.h>int main

14、 () int Digit4; int n; int i; int m; printf ("Input a 4 digits numbern"); scanf("%d",&n); Digit0=n/1000; Digit1=(n-1000*Digit0)/100;Digit2=(n-Digit0*1000-Digit1*100)/10;Digit3=n-Digit0*1000-Digit1*100-Digit2*10; for(i = 0;i <=3;i+) Digiti=(Digiti+5)%10; m= Digit0+10*Digit1

15、+100*Digit2+1000*Digit3; printf("%d",m); return 0;(请用二维数组完成)从键盘为3*3的矩阵输入数据,找出主对角线上最大的元素,以及所在的行号。(第一行行号为0)*输入格式要求:"%d"*输出格式要求:"max=%d ,row=%d"屏幕输入数据,输出最终结果(每个数字之间空一格):程序运行示例如下:1 2 34 5 67 8 9max=9 ,row=2# include <stdio.h>int main ()int i, j;int s33;int max, row;fo

16、r (i = 0; i < 3; i+)for (j = 0; j < 3; j+)scanf ("%d", &s ij);max = s 00;row = 0;for (i = 0; i < 3; i+)if (max < s ii)max = s ii;row = i;printf ("max=%d ,row=%d", max, row);return 0;计算游戏人员的年龄。有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他

17、说比第1个人大2岁。第1个人说自己10岁,问第5个人多大年纪。输入格式:无输出格式:"The 5th person's age is %dn"# include <stdio.h>int Fs (int x);int main ()int age;int n = 5;age = Fs (n);printf ("The 5th person's age is %dn", age);return 0;int Fs (int x)if (x = 1)return 10;elsereturn 2 + Fs (x - 1);输入一组包含

18、10个整数的数组,找出其中的最小元素,并与第一个元素交换。输出这个数组。要求交换元素时调用swap_min函数。输入输出示例(第一行为输入,第二行为输出):22 20 9 8 7 6 12 17 1 31 20 9 8 7 6 12 17 22 3#include <stdio.h>#include <stdlib.h>void swap_max(int *a,int *b);int main() int a11; int i,j,k; for(i=0;i<10;i+) scanf(" %d",&ai); k=0; for(j=0;j&

19、lt;10;j+) if(aj>ak) k=j; swap_max(&ak,&a0); printf("%d %d %d %d %d %d %d %d %d %d",a0,a1,a2,a3,a4,a5,a6,a7,a8,a9); return 0;void swap_max(int *a,int *b) int temp; temp=*a; *a=*b; *b=temp;按照给定的函数原型编程实现两个字符串的连接(不允许使用字符串连接函数strcat)。函数原型:void Mystrcat(char a , char b );要求:将字符数组a中存放的

20、字符串连接到字符数组b中;在主函数读入两个字符串(读入的字符串可包括空格);连接之后的字符串在主函数输出;字符串长度最长为70。输入输出样例(前两行为输入,最后一行为输出):Hello!How are you?How are you?Hello!#include <stdio.h>#include <string.h>void Mystrcat(char a,char b);int main()char a80,b80;gets(a);gets(b);Mystrcat(a,b);puts(a);return 0;void Mystrcat(char a,char b)

21、int i,n,m; m=strlen(b); n=strlen(a); for (i = 0; i < m+1; +i) an+i=bi; am+n+1='0'用循环结构编程,输出如下图案。 * * * *# include <stdio.h># define N 5int main ()char m NN;int i;for (i = 0; i < N; i+)if (i = 0 | i = 4)printf (" %cn", m02 = '*');else if (i = 1 | i = 3)printf (&q

22、uot; %c%c%cn", m 11 = '*', m12 = '*', m13 = '*');else if (i = 2)printf ("%c%c%c%c%cn", m i0 = '*', m i1 = '*', m i2 = '*', m i3 = '*', m i4 = '*');return 0;有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50元:每个男人花3元,每个女人花2元,每个小孩花1元,问男人、女人和小孩

23、各几人?*输出格式要求:(前两行为表头格式,最后一行为输出答案格式,有几种可能答案输出几行,第一个%2d表示行号(从1开始),后三个%d分别为男人、女人、小孩的人数,按男人数递增顺序输出)"tMENtWOMENtCHILDRENn" "-n""%2d:t%dt%dt%dn"# include <stdio.h># define N 30int main ()int man, woman, child;int r= 0;printf ("tMENtWOMENtCHILDRENn");printf (&qu

24、ot;-n");for (man = 0; man < N; man+)for (woman = 0; woman < N - man; woman +)child = N - man - woman;if (3 * man + 2 * woman + 1 * child = 50)r +;printf ("%2d:t%dt%dt%dn", r, man, woman, child); return 0;按如下函数原型,用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从键盘输入。已知n值不超过10。void Tra

25、nspose(int aN, int n);void InputMatrix(int aN, int n);void PrintMatrix(int aN, int n);输入提示信息要求:"Input n:n"输入格式:"%d"输出提示信息:"The transposed matrix is:n"输出要求:"%dt" 输出矩阵时,每输出一行就换行注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程输入输出示例:Input n:21 10 2The transposed matrix is:1 01

26、2# include <stdio.h># define N 10void Transpose (int mN, int n);void InputMatrix (int m N, int n);void PrintMatrix (int m N, int n);int main ()int n;int m NN;printf ("Input n:n");scanf ("%d", &n);InputMatrix (m, n);Transpose (m, n);printf ("The transposed matrix is

27、:n");PrintMatrix (m, n);return 0;void InputMatrix (int m N, int n)int i, j;for (i = 0; i < n; i+)for (j = 0; j < n; j+)scanf ("%d", &m ij);void PrintMatrix (int m N, int n)int i, j;for (i = 0; i < n; i+)for (j = 0; j < n-1; j+)printf ("%dt", m ij);printf ("%d", m in - 1);printf ("n");void Transpose (int m N, int n)int i, j;int temp;for (i = 0; i < n; i+)for (j = 0; j < i; j+)temp = m ij; m ij = m ji;m ji = temp;从键盘任意输入一个字符串(字符串可以有空格),在给定的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论