C语言练习题(山东科技大学吐血整理)_第1页
C语言练习题(山东科技大学吐血整理)_第2页
C语言练习题(山东科技大学吐血整理)_第3页
C语言练习题(山东科技大学吐血整理)_第4页
C语言练习题(山东科技大学吐血整理)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——C语言练习题(山东科技大学吐血整理)数学11-1C语言平日训练题

1、算术基本运算

Description

计算两整数x和y(0intmain(){intx,y,a,b,c,d,e,f,g;0#definePI3.14intmain(){floatr,s,c;scanf(\s=PI*r*r;c=2*PI*r;printf(\printf(\return0;}

3、平均值

Description

求3个数的平均值。Input

输入只有一行,为3个较小的整数。Output

输出为这3个整数的平均值,保存3位小数。SampleInput123

SampleOutput2.000Answer

#includeintmain(){inta,b,c;floatd;scanf(\d=(a+b+c)/3.0;printf(\return0;}

4、货币兑换

Description

给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。Input

输入有三行。

第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,确切到小数点后4位,如668.5200表示“100美元=668.5200人民币〞。汇率浮动范围为(0,10000)。其次行为外币金额x,第三行为人民币金额y。x,y均为整数,且0intmain(){doublex,y,a,b,c,d,e,f,g,h,i;scanf(\scanf(\scanf(\d=x/100*a;e=x/100*b;f=x/100*c;g=y/a*100;h=y/b*100;i=y/c*100;printf(\printf(\return0;}

5、求字符的值

Description

从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。Input

输入为3个字符。Output

输出为3行。

每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。SampleInput0A

SampleOutput048060030032040020065101041Answer

#includeintmain(){

chara,b,c;

scanf(\printf(\printf(\printf(\return0;}

6、奇数还是偶数?

Description

输入一个整数,判读它是奇数还是偶数。Input

输入只有一行,为一个100以内的正整数。Output

输出为一行。

若输入为偶数则输出“even〞,奇数输出“odd〞。

SampleInput30

SampleOutputevenAnswer

#includeintmain(){

inta;

scanf(\if(a>=0}

7、绝对值

Description

求整型数据和浮点型数据的绝对值。Input

输入两个数,第一个是整数,其次个是浮点数。Output

输出为两行,第一行为整数的绝对值,其次行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。SampleInput-11

SampleOutput11

Answer

#include#include#includeintmain(){

inta,c;doubleb,d;

scanf(\c=abs(a);d=fabs(b);

printf(\return0;}

8、简单的打折计算

Description

商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),确切到分。Input

输入只有一行,三个整数m、n和x,且0intmain(){

intm,x,n,a;floatb;

scanf(\0n)

b=0.88*a;else

b=a;

printf(\return0;}

9、判断闰年

Description

输入一个正整数的年份,判断是否为闰年。Input

输入只有一行,为一个10000以内的正整数。Output

输出为一行。

若输入为闰年偶数则输出“Yes〞,否则输出“No〞。SampleInput2023

SampleOutputNo答案

#includeintmain(){

inta;

scanf(\if(a>0}

10、水仙花数

Description

假使一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。Input

一个整数x,100intmain(){

inta,b,c,d,e;scanf(\b=a/100;

c=(a-b*100)/10;d=(a-b*100-c*10);

e=b*b*b+c*c*c+d*d*d;if(a==e)

printf(\else

printf(\return0;}

11、三个数比较大小

Description

从键盘上输入0~100之间的三个数,按从小到大的顺序输出。Input

输入只有一行,为三个整数。Output

按从小到大输出这三个数。SampleInput151020

SampleOutput101520Answer

#includeintmain(){inta,b,c;scanf(\if(a>=b){if(b>=c)printf(\elseif(a>c)printf(\elseprintf(\}else{

}

if(a>=c)printf(\elseif(b>=c)printf(\elseprintf(\}

return0;

12、输出整数的最低两位

Description

把一个整数的最低两位打印出来,不输出整数的符号。Input

输入为一个整数n,不会超出int类型的数据范围。Output

输出n的最低两位数字。但是,输入的数字本身不足两位时,不应当补0。如,输入为“1〞,则输出为“1〞。SampleInput-102

SampleOutput02

Answer

#includeintmain(){inta,b,c;scanf(\if(a>=100){b=a-a/100*100;printf(\}elseif(a>=0){printf(\}elseif(a>=-99){printf(\}else{c=-a;b=c-c/100*100;printf(\}return0;}

13、判断奇偶数(填空)

Description

编写一个程序,判断读取的正整数的奇偶性,部分程序已经给出,请填上空白语句,并提交填充后的完整程序。程序(含答案):#includeintmain(){

intnum;

scanf(\if(num%2==0)printf(\是一个偶数else

printf(\是一个奇数return0;}

14、求分段函数的值(填空)

Description

设有分段函数如下:

给出N>0个x的值,求对应的y值并输出。

部分程序已经给出,请填充其中的空白语句,并提交填充后的完整程序。程序(含答案):#include#includeintmain(){

doublex,y;inti,N;

scanf(\for(i=0;iintmain(){intk,m,n,a,i=1;scanf(\if(mintmain(){inta,b;while(scanf(\{printf(\}return0;}

17、A+BProblem(II):Input/OutputPratice

Description

计算a+b,0intmain(){inta[1000],b[1000],N,i;scanf(\for(i=1;iintmain(){

intscore;while(scanf(\{if(score100)printf(\else{

scanf(\b[i]=a[n];}

for(i=1;i#includeintmain(){

chara[20],b[20];inti,j=1;

scanf(\

while(scanf(\{

if(j0),后面有M组输入数据。每组数据以两个正整数m和n开始,满足0intmain(){

inta[100][100]={0},M,m,n,i,j,k,b[100][100]={0};scanf(\for(k=0;kintstrToInt(charstr[]){

inti,j,a=0,s=0;if(str[0]=='\\0')return-1;else{

for(i=0;str[i]!='\\0';i++){

if(str[0]57){return0;gotoloop;}else{if(str[i]>=48s=s*10+a;a=0;}elsebreak;}}

returns;loop:;}}

intmain(){

charstr[11];gets(str);

printf(\while(gets(str)!=NULL){

printf(\}

return0;}

29、stringtointeger(II)

Description

需要编写一个函数,将字符串转换为整数。函数原型为:intstrToInt(charstr[]);

其中:参数str[]是需要转换的字符串,返回值表示字符串str[]转换为整数之后的结果。转换规则是:字符串中可能包含符号位,即“+〞或“-〞,而且假使包含符号位,能且仅能是第一个字符。将字符串str[]中全部都是数字字符(含0个或1个符号位)的前缀转换为整数,并返回。假使str[]的首字符不是数字字符也不是符号位,则返回0;假使str[]是空串,则返回0。

例如:strToInt(“+123ab〞)=123;strToInt(\-a123\。

注意:主函数已经给出,你只需要提交strToInt()函数的代码。而且不能使用标准库函数进行转换。提交的代码要包含必要的头文件包含命令。Input

输入是若干行字符串,它们都包含不超过10个的字符,而且包含的整数不会超出int类型的表示范围。Output

输出为若干行整数,每一行输出与上述输入一一对应。SampleInput123c0123dd

-45ede1321+76abcdef

SampleOutput1231230-45076

Answer

#includeintstrToInt(charstr[]){

inti,j,a=0,s=0;if(str[0]=='\\0')return0;else{

if((str[0]57)elseif(str[0]=='+')

for(i=1;str[i]!='\\0';i++){if(str[i]>=48s=s*10+a;}elsebreak;}

elseif(str[0]=='-'){

for(i=1;str[i]!='\\0';i++){if(str[i]>=48s=s*10+a;}elsebreak;}s=-s;}else

for(i=0;str[i]!='\\0';i++){if(str[i]>=48s=s*10+a;}elsebreak;}returns;}}

intmain(){

charstr[11];gets(str);

printf(\while(gets(str)!=NULL){

printf(\}

return0;}

30、stringcompare(I)

Description

需要编写一个可以比较字符串大小的函数,其原型为:intstrcmp(charstr1[],charstr2[]);

其中:参数str1[]和str2[]是两个用于比较的字符串。返回值表示它们的大小关系。

比较规则是:依照一致位置的字符的ASCII码进行比较,假使两个字符串所有位置的字符都一致,则返回0;假使第(ii>=0)个位置的字符是第一对不同的字符,则返回str1[i]与str2[i]的ASCII码的差。

例如:strcmp(\

注意:主函数已经给出,你只需要提交strcmp()函数的代码。不能使用标准库函数进行比较。提交的代码要包含必要的头文件包含命令。Input

输入为n(n>0)对字符串(可能含空白符),每一对字符串中的第一个字符串即为str1,其次个是str2。Output

输出是n行整数,每一行整数与上述每一对输入一一对应,即表示相应的每对字符串的比较结果。

SampleInputabcABCabc

SampleOutputcase1:666case2:33case3:1

case4:34567Answer

#includeintmain(){intK,i,j,k,m,n,r[100],sum[100][100],a[100][100];scanf(\for(k=0;k0,表示有N个用例。

每个用例的输入有1行或2行,其中第一行是00,则其次行包含M个整数,两两之间用空格隔开;假使M=0,则该用例没有其次行输入。Output

输出为N行,每行与上述输入一一对应,分别是对应用例的逆序。输出格式为:casei:d1d2...

其中i表示用例编号(从1开始),d1、d2等是数组逆序后的结果,两两之间用空格隔开。假使该用例不包含任何输入,即:M=0,则仅输出:casei:

SampleInput310

1098765432105

12345

SampleOutput

case1:12345678910case2:

case3:54321Answer

#includeintmain(){intN,M[10000],a[100][1001],i,j;scanf(\for(i=0;i0;j--)printf(\printf(\printf(\}elseprintf(\}return0;}

温馨提示

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

评论

0/150

提交评论