经典练习C语言编程的题目及答案整理
计算机程序设计基础(C语言)编程习题

计算机程序设计基础(C语言)编程练习题及参考答案1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>main(){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);}2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14 <stdio.h>main(){ float r ,s , l;printf("please input r:\n");scanf("%f”,&r);if (r>=0){s=pi*r*r;l=2*i*r ;printf("the area is %f\n",s);printf("the circumference is %f\n",l);}elseprintf("input error!\n");}3、函数y=f(x)可表示为:2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)编程实现输入一个x值,输出y值。
main(){int x,y;scanf(“%d”,&x);If(x<0)y=2*x+1;If(x>0)y=2*x-1;If(x==0) y=0;prin tf(“%d”,y);}4、编写一个程序,从4个整数中找出最小的数,并显示此数。
main( ){int a,b,c,d,t;scanf (“%d,%d,%d,%d ”,&a,&b,&c,&d);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}pri ntf (“m in = %d \n”,a);}5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
C语言编程题(带答案)

C语言编程题(带答案)1、求100之内自然数中最大的能被17整除的数。
2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
3、计算并输出200-400之间不能被3整除的整数的和。
4、从键盘输入10个数,统计非负数的个数,并计算非负数的和5、求100之内自然数中偶数之和。
6、输入5个数,求和并输出。
要求编写求和的函数。
7、编程计算1*2*3+3*4*5+5*6*7+……+99*100*101的值。
8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
9、编写程序,将一个一维数组的元素逆序存放并输出。
例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。
10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
11、编程判断输入的整数的正负性和奇偶性。
如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j12、计算并输出1-200之间不能被5整除的整数的和。
13、从键盘输入n和a的值,计算a+aa+aaa+……+aa……a(n个a)的值。
14、输入5个数,求它们中最大值和平均值并输出。
15、输出所有200-400之间能被3整除且个位数字为6的整数16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
17、计算并输出200-400之间不能被7整除的整数的和。
18.计算并输出200-400之间不能被5整除的整数的和19、从键盘输入10个数,统计非正数的个数,并计算非正数的和20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。
21、打印所有的水仙花数。
所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。
例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
c编程试题及答案

c编程试题及答案1. 请写出C语言中声明一个整型变量的语句。
答案:int a;2. 在C语言中,如何定义一个函数?答案:返回类型函数名(参数列表) {// 函数体}3. 请解释C语言中的指针是什么?答案:指针是一种特殊的变量,其存储的是另一个变量的内存地址。
4. 在C语言中,如何使用指针来交换两个变量的值?答案:```cvoid swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}```5. 请写出C语言中数组的定义方式。
答案:类型数组名[数组大小];6. 在C语言中,如何使用循环来遍历数组?答案:```cfor (int i = 0; i < 数组大小; i++) {// 访问数组元素:数组名[i]}```7. 请解释C语言中的结构体是什么?答案:结构体是一种用户自定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
8. 如何在C语言中定义一个结构体?答案:```cstruct 结构体名 {类型成员1;类型成员2;// ...};```9. 在C语言中,如何声明一个结构体变量?答案:```cstruct 结构体名变量名;```10. 请解释C语言中的文件操作。
答案:C语言提供了一系列的函数来实现文件的打开、读取、写入和关闭。
11. 如何在C语言中打开一个文件?答案:```cFILE *fp;fp = fopen("文件路径", "模式");```其中,"模式"可以是"r"(只读)、"w"(只写)、"a"(追加)等。
12. 在C语言中,如何读取文件中的数据?答案:```cint c;while ((c = fgetc(fp)) != EOF) {// 处理字符 c}```13. 如何在C语言中写入数据到文件?答案:```cfputc('字符', fp);```14. 在C语言中,如何关闭一个文件?答案:fclose(fp);15. 请写出C语言中使用条件语句的格式。
C语言200道练习试题和答案

C) 33
D) 60
8.为表示关系x≥y≥z,应使用C语言表达式【 A) (x>=y>=z) B)(x>=y)AND(y>=z) C) (x>=y)&&(y>=z) D)(x>=y)&(y>=z)
】c 。
9.说明语句:int a[][3]={1,2,3,4,5,6,7,8,9}; 则a数组的行数为 【 d 】 。
56.以下变量x.、y、z均为double类型且已正确赋值,不 正确的C语言表达式是【a 】
A)x/y%z B) x*y*z C) x/y*5.0
D) x+y+(int)z
57.有以下语句 char c; c=a+‘3’-’1’; 执行后c的值c 为:【 】
15.下面程序段的运行结果是 【 A 】。 char *s=”abcde”; s+=1; printf(“%s\n”,s);
A)bcde B)abcde C)ab D)b
16.若有定义:int a[2][3],则以下对a数组元素的正确引用 是【 B 】。 A)*(a+1) B)*(a[1]+2) C)&a[0][0] D)a[1]+3
D),
44.若x,i,j和k都是int型变量,则计算下面表达式后, x的值为【 c 】 x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
45.若x,y均定义为int型,z定义为double型,以下不合法 的scanf函数调用语句是【 d】
A) scanf("%d%lx,%le",&x,&y,&z); B) scanf("%2d*%d,%lf",&x,&y,&z); C) scanf("%x%*d,%o",&x,&y); D)scanf("%x%o%6.2f",&x,&y,&z);
c语言习题及答案

【习题1】一、判断并改错1.1 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.2 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.3 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.4 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
二、编程题2.1 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f2.2 输入两个整数,输出其中最大者。
提示:模仿例1.3【习题2】一、单项选择题1.1下面四个选项中,均是不合法的用户标识符的选项是(C)。
A)BA、x_0、doB)float、1a0、_YC)x-y、goto、123D)_123、tmp、CHAR1.2下列选项中不正确的常数的选项是(D)。
A)0x12F B)-1.23E-2 C)12.0 D)03881.3下面正确的字符常量是(B)。
A)"a" B)'\\' C)"\n" D)"\376"1.4下面正确的字符串常量是(C)。
A)'a' B)'376' C)"\\n" D)3761.5 表达式'A'+4*25.0-'b'的正确结果是(B )。
A)67 B)67.0 C)不确定 D)67L1.6 执行printf("%x",100);后的输出结果是(C )。
C语言编程题及答案(精心整理)

)(*)(*)(*c s b s a s s ---C 语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。
main(){float i=1,j=2,t=0,s,n,m;for(n=1;n<=20;n++)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t);}2.(*)从键盘输入一个字符串,再将其逆序输出。
(如:输入abcde ,输出edcba ) main(){int i;char c[10];scanf("%s",c);for(i=9;i>=0;i--)printf("%c",c[i]);}3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。
main(){int a,b,c,x,y;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=1;c<=9;c++){ x=100*a+10*b+c;y=100*c+10*b+a;if(x+y==1333)printf("x=%d,y=%d",x,y);}}4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。
若输入的三边长不能构成 三角形,输出相应提示信息。
海伦公式如下:其中s=(a+b+c)/2三角形面积= #include"math.h"main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));if(a+b>c&&a+c>b&&b+c>a)printf("area=%f",area);else.1 .printf("no");}5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。
编程c语言试题及答案

编程c语言试题及答案1. 题目:编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("100以内所有偶数的和为:%d\n", sum);return 0;}```2. 题目:请编写一个C语言函数,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串为:%s\n", str);return 0;}```3. 题目:编写一个C语言程序,实现计算并输出1到100之间所有整数的平方和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i * i;}printf("1到100之间所有整数的平方和为:%d\n", sum);return 0;}```4. 题目:请编写一个C语言程序,实现一个简单的计算器,可以进行加、减、乘、除运算。
C语言经典编程100题(答案版)

C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.逆序输出正三位数#include <stdio.h>int main(){int input,output= 0;scanf("%d",&input);while(input != 0){output = output*10 + input%10; input /= 10;}printf("%d\n",output);return 0;}2.百元找零函数#include <stdio.h>int main(){int amount=100;int price=0;printf("请输入金额(元)");scanf("%d",&price);printf("请输入票面");scanf("%d",&amount);int change=amount-price;printf("找您%d元。
\n",change);return 0;}3.求平均数#include <stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);double c=(a+b)/2.0;/*scanf("%d",&amount);这是注释,我随便放的,没意义int change=amount-price;*/printf("%d和%d的平均值是%f\n",a,b,c);return 0;}4.写出程序的输出:int i=1;switch(i/3){case0:printf("zero");case1:printf("one");case2:printf("two");}正确答案是:zeroonetwo。
5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。
例如:153 = 13 + 53+33。
本题要求编写程序,计算所有N位水仙花数。
输入格式:输入在一行中给出一个正整数N(3<=N<=7)。
输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:3输出样例:153370371407#include <stdio.h>int main(void) {int i, j, n, low = 1, high, temp, sum, item, remainder;scanf("%d", &n);for(i = 1; i < n; ++i)low *= 10; /* 得到n位数的下限 */high = low * 10; /* 得到n位数的上限 */for(i = low; i < high; ++i) {temp = i;sum = 0;while(temp > 0) {remainder = temp % 10;item = remainder;for(j = 1; j < n; ++j)item *= remainder;sum += item;temp /= 10;}if(i == sum)printf("%d\n", i);}return0;}6.时间换算UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。
现在,你的程序要读入一个整数,表示BJT的时和分。
整数的个位和十位表示分,百位和千位表示小时。
如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。
整数的个位和十位表示分,百位和千位表示小时。
如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。
输入格式:一个整数,表示BJT的时和分。
整数的个位和十位表示分,百位和千位表示小时。
如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输出格式:一个整数,表示UTC的时和分。
整数的个位和十位表示分,百位和千位表示小时。
如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输入样例:903输出样例:103时间限制:500ms内存限制:32000kb#include <stdio.h>int main(){int h,m,input,b;scanf("%d",&input);h = input/100;m = input%100;if (h>=8){printf("%d",b = (h-8)*100+m);}else{printf("%d",b = (h+24-8)*100+m);}return 0;}7.信号报告题目内容:无线电台的RS制信号报告是由三两个部分组成的:R(Readability) 信号可辨度即清晰度.S(Strength) 信号强度即大小.其中R位于报告第一位,共分5级,用1—5数字表示.•1---Unreadable•2---Barely readable, occasional words distinguishable•3---Readable with considerable difficulty•4---Readable with practically no difficulty•5---Perfectly readable报告第二位是S,共分九个级别,用1—9中的一位数字表示•1---Faint signals, barely perceptible•2---Very weak signals•3---Weak signals•4---Fair signals•5---Fairly good signals•6---Good signals•7---Moderately strong signals•8---Strong signals•9---Extremely strong signals现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。
如读到59,则输出:Extremely strong signals, perfectly readable.输入格式:一个整数,信号报告。
整数的十位部分表示可辨度,个位部分表示强度。
输入的整数范围是[11,59],这个范围外的数字不可能出现在测试数据中。
输出格式:一句话,表示这个信号报告的意义。
按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。
注意可辨度的句子的第一个字母是小写的。
注意这里的标点符号都是英文的。
输入样例:33输出样例:Weak signals, readable with considerable difficulty.#include <stdio.h>int main(){int rs;scanf("%d",&rs);if(rs % 10 != 0) {int r = rs / 10;int s = rs % 10;switch(s) {case 1:printf("Faint signals,barely perceptible,");break;case 2:printf("Very weaksignals,");break;case 3:printf("Weak signals,");break;case 4:printf("Fair signals,");break;case 5:printf("Fairly goodsignals,");break;case 6:printf("Good signals,");break;case 7:printf("Moderately strongsignals,");break;case 8:printf("Strong signals,");break;case 9:printf("Extremely strongsignals,");break;}switch(r) {case 1:printf("unreadable.");break;case 2:printf("barely readable,occasional words distinguishable.");break;case 3:printf("readable withconsiderable difficulty.");break;case 4:printf("readable withpractically no difficulty.");break;case 5:printf("perfectly readable.");break;}}return 0;}也可以写成下面这样:#include <stdio.h>int main(){int s;int r;int n;scanf("%d",&n);r=n/10;s=n%10;switch(s){case 0:printf("");case 1:printf("Faint signals, barely perceptible, ");break;case 2:printf("Very weak signals, ");break;case 3:printf("Weak signals, ");break;case 4:printf("Fair signals, ");break;case 5:printf("Fairly good signals, ");break;case 6:printf("Good signals, ");break;case 7:printf("Moderately strong signals, ");break;case 8:printf("Strong signals, ");break;case 9:printf("Extremely strong signals, ");break;}switch(r){case 0:printf("");case 1:printf("unreadable.");break;case 2:printf("barely readable, occasional words distinguishable.");break;case 3:printf("readable with considerable difficulty.");break;case 4:printf("readable with practically no difficulty.");break;case 5:printf("perfectly readable.");break;}return 0;一个整数,表示计算结果。