哈工大c语言练习题.docx

上传人:b****3 文档编号:6268526 上传时间:2023-05-09 格式:DOCX 页数:20 大小:25.77KB
下载 相关 举报
哈工大c语言练习题.docx_第1页
第1页 / 共20页
哈工大c语言练习题.docx_第2页
第2页 / 共20页
哈工大c语言练习题.docx_第3页
第3页 / 共20页
哈工大c语言练习题.docx_第4页
第4页 / 共20页
哈工大c语言练习题.docx_第5页
第5页 / 共20页
哈工大c语言练习题.docx_第6页
第6页 / 共20页
哈工大c语言练习题.docx_第7页
第7页 / 共20页
哈工大c语言练习题.docx_第8页
第8页 / 共20页
哈工大c语言练习题.docx_第9页
第9页 / 共20页
哈工大c语言练习题.docx_第10页
第10页 / 共20页
哈工大c语言练习题.docx_第11页
第11页 / 共20页
哈工大c语言练习题.docx_第12页
第12页 / 共20页
哈工大c语言练习题.docx_第13页
第13页 / 共20页
哈工大c语言练习题.docx_第14页
第14页 / 共20页
哈工大c语言练习题.docx_第15页
第15页 / 共20页
哈工大c语言练习题.docx_第16页
第16页 / 共20页
哈工大c语言练习题.docx_第17页
第17页 / 共20页
哈工大c语言练习题.docx_第18页
第18页 / 共20页
哈工大c语言练习题.docx_第19页
第19页 / 共20页
哈工大c语言练习题.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

哈工大c语言练习题.docx

《哈工大c语言练习题.docx》由会员分享,可在线阅读,更多相关《哈工大c语言练习题.docx(20页珍藏版)》请在冰点文库上搜索。

哈工大c语言练习题.docx

哈工大c语言练习题

哈工大c语言练习题

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

求用户输入的两个数的商,程序运行时,以如下格式输入数据:

Inputtwointegers:

42↙

请改正程序中的错误,使它能得出正确的结果。

#include 

main(〕

{

inta, b,c;

 printf〔"Input twointegers:

"〕;

  scanf("%d,%d",&a,&b〕;

c=a\b;

printf("The quotient ofa and b is :

%d",c);

#include

intmain ()

{

ﻩinta,b,c;

printf〔"Inputtwointegers:

");

ﻩscanf ("%d%d",&a,&b);

ﻩc=a/b;

ﻩprintf 〔"Thequotientofa andbis :

%d\n",c);

return0;

}

使用const常量定义圆周率pi=3.14159,编程从键盘输入圆的半径r,计算并输出圆的周长和面积。

输出的数据保存两位小数点。

输入格式要求:

"%lf"

提示信息:

"Input r:

"

输出格式要求:

"printf WITHOUTwidthorprecisionspecifications:

\n"

"circumference= %f,area=%f\n"

"printfWITH widthandprecision specifications:

\n"

"circumference =%7.2f,area=%7.2f\n"

程序运行例如如下:

Input r:

5.3

printf WITHOUTwidthorprecisionspecifications:

circumference=33.300854,area=88.247263

printf WITHwidthandprecision specifications:

circumference= 33.30, area= 88.25

#include

intmain()

{

 const double PI=3.14159;

ﻩdouble r;

 printf("Inputr:

");

 scanf("%lf", &r);

 printf("printf WITHOUTwidthorprecision specifications:

\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;

写一个程序,将接收的华氏温度转换为对应的摄氏温度。

程序应显示如下的提示信息:

 

Pleaseinput fahr:

然后输入一个十进制数并回车,然后程序以适宜的消息形式输出转换后的华氏温度。

程序使用如下的公式完成转换:

摄氏温度= 5.0*〔华氏温度–32.0〕 /9.0

输入格式要求:

"%lf" 

提示信息:

"Pleaseinput fahr:

 "

输出格式要求:

"Thecels is:

%.2f"

#include<stdio.h>

#include <stdlib.h>

intmain〔)

{

doublef;

double c;

printf〔"Pleaseinput fahr:

");

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<stdio.h>

int main()

char ch;

 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〔int n)

int i;

ﻩlong result=1;

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

ﻩ{

ﻩﻩresult*=i;

ﻩ}

ﻩreturn result;

int main()

{

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<stdio.h>

#include

int ss(intn)

{

 int i;

if(n<2)return0;

 for(i=2;i<=(int)sqrt((double〕n〕;i++〕

if (n%i==0)return 0;

return1;

}

int main(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<math.h>

intss(intn)

{

 int i;

if(n<2)return0;

 for(i=2;i<=(int〕sqrt((double)n); i++)

if(n%i==0)return 0;

return 1;

int main(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);

return 0;

}

〔请用一维数组完成)某个公司采用公用传递数据,数据是四位的整数,在传递过程中是加密的,加密规那么如下:

每位数字都加上 5,然后用和除以 10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

输入格式要求:

"%d"

提示信息:

"Inputa4 digitsnumber\n"

输出格式要求:

"%d"

程序运行例如如下:

Inputa4 digits number

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 < s [i][i])

{

max=s[i][i];

ﻩﻩrow=i;

}

}

printf("max=%d,row=%d", max,row);

return 0;

计算游戏人员的年龄。

有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。

第1个人说自己10岁,问第5个人多大年纪。

输入格式:

输出格式:

"The5thperson'sage is%d\n"

# include

intFs(intx);

intmain()

{

intage;

ﻩintn=5;

ﻩage = Fs 〔n);

printf("The5thperson's ageis%d\n",age);

ﻩreturn0;

}

intFs(int x〕

{

ﻩif(x==1)

ﻩreturn10;

else

ﻩreturn2 + Fs (x- 1);

}

输入一组包含10个整数的数组,找出其中的最小元素,并与第一个元素交换。

输出这个数组。

要求交换元素时调用swap_min函数。

输入输出例如〔第一行为输入,第二行为输出):

2220987612 171 3

1 2098 7612 17 223#include

#include 

voidswap_max(int*a,int*b〕;

intmain()

{

  int a[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[],char b[]);

intmain()

{

chara[80],b[80];

ﻩgets(a〕;

ﻩgets(b);

ﻩMystrcat(a,b〕;

ﻩputs(a〕;

ﻩreturn 0;

}

voidMystrcat(chara[],charb[]〕

{

 inti,n,m;

m=strlen(b);

 n=strlen(a);

 for (i= 0; i<m+1;++i)

{

ﻩa[n+i]=b[i];

 }

a[m+n+1]='\0';

}

用循环构造编程,输出如以下图案。

***

*****

***

*

#include

# defineN5

intmain()

{

charm[N][N];

inti;

for(i=0;i < N; 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]='*');

ﻩ}

ﻩelse if(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<stdio.h>

#defineN30

int main ()

intman,woman, child;

ﻩint r= 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], int n〕;

voidInputMatrix(inta[][N], intn);

voidPrintMatrix〔int a[][N],int n);

输入提示信息要求:

"Inputn:

\n"

输入格式:

"%d"

输出提示信息:

"Thetransposed matrix is:

\n"

输出要求:

"%d\t"

输出矩阵时,每输出一行就换行

注:

不能使用指针、构造体、共用体、文件、goto、枚举类型进展编程

输入输出例如:

Inputn:

2

11

02

The transposed matrix is:

10

12

#include 

#define N 10

voidTranspose(intm[][N],intn);

void InputMatrix (intm[][N],intn〕;

voidPrintMatrix (intm[][N],int n);

intmain()

{

intn;

ﻩintm [N][N];

printf〔"Input n:

\n"〕;

ﻩscanf ("%d",&n);

ﻩInputMatrix 〔m, n);

ﻩTranspose (m, n〕;

ﻩprintf("Thetransposedmatrix is:

\n"〕;

PrintMatrix(m,n〕;

return0;

}

voidInputMatrix(intm[][N],intn〕

{

int i, j;

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

ﻩ{

ﻩfor(j =0;j

ﻩ{

ﻩﻩscanf ("%d",&m[i][j]);

ﻩ}

ﻩ}

voidPrintMatrix(intm[][N],intn)

{

inti, j;

for〔i =0; i

{

for(j= 0;j < n-1;j++)

ﻩprintf("%d\t", m [i][j]);

ﻩ}

ﻩprintf ("%d",m[i][n-1]〕;

ﻩprintf 〔"\n"〕;

ﻩ}

voidTranspose (int m [][N],intn〕

{

inti,j;

inttemp;

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

ﻩ{

for 〔j= 0;j 

ﻩ{

temp = m[i][j];

   m [i][j]= m[j][i];

ﻩﻩm[j][i] = temp;

ﻩ}

ﻩ}

}

从键盘任意输入一个字符串(字符串可以有空格),

在给定的一组字符串中寻找该输入字符串,

假设找到,那么打印该字符串,否那么打印"Not find!

"。

注意:

(1〕请提交修改正确后的完整源程序代码。

〔2〕对于没有错误的语句,请不要修改

#include

#include<stdio.h>

main()

int i,findFlag=1;

charx;

 char str[][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〔"Not find!

\n");

}

}

#include

#include

intmain()

{

  inti=0,f=1; 

char m [13];

 charstr[][13]={"Pascal","Basic","Fortran","Java","VisualC","Visual Basic"};

  printf("Inputstring:

\n");

  gets〔m);

while(i<6&&f ==1)

ﻩif(strcmp〔m,str[i])==

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2