经典练习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语言编程的题目及答案整理
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。
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。
c语言试卷集(10套)-试题及答案
c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。
A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。
A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。
A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。
A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。
A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。
C语言编程题带答案
C语言编程题带答案题目 1:求两个整数的最大值```cinclude <stdioh>int max(int num1, int num2) {if (num1 > num2) {return num1;} else {return num2;}}int main(){int num1 = 10, num2 = 20;int maxValue = max(num1, num2);printf("最大值为: %d\n", maxValue);return 0;}```分析:在这个程序中,我们定义了一个名为`max` 的函数,它接受两个整数参数`num1` 和`num2` 。
通过使用条件判断语句`if` 来比较这两个数的大小,如果`num1` 大于`num2` ,则返回`num1` ,否则返回`num2` 。
在`main` 函数中,我们给定了两个整数`num1` 和`num2` 的值,并调用`max` 函数来获取它们中的最大值,最后使用`printf` 函数将最大值输出到控制台。
题目 2:计算一个整数数组的平均值```cinclude <stdioh>float average(int arr, int size) {int sum = 0;for (int i = 0; i < size; i++){sum += arri;}return (float)sum / size;}int main(){int arr ={10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr0);float avg = average(arr, size);printf("平均值为: %2f\n", avg);return 0;}```分析:在这个程序中,首先在`average` 函数里,我们初始化一个变量`sum` 为 0 ,用于存储数组元素的总和。
100个经典C语言编程例子(答案另附)
100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
c语言经典编程试题12例(带答案)
int i,num=0;
float a[10],sum=0.0;
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
if(i>=0)
{
num++;
sum+=a[i];
}
printf("10个数中非负数的个数为:%d\n",num);
void main()
{
char a[50];
char *p,*q;
printf("请输入一个字符串:");
gets(a);
for(p=a;*p!=0;)
if(*p=='a')
{
q=p;
while(*p)
{
*p=*(p+1);
p++;
}
p=q;
}
else
p++;
printf("%s\n",a);
}
12、一个皮球从100米的高度自由落下,每次落地后反弹回原来高度的一半,再落下,在反弹。求当它第10次落地时,共经过了多少米,第十次反弹多高?
printf("100之内偶数的和位: %d\n",sum);
}
7、求1*2*3+3*4*5+…99*100*101的值。
解题思路:
定义一个变量从1到101,再有标志变量j确定乘够3个数之后便重新开始下一次乘积。跳出循环后加上最后一次乘积。
C语言200道练习题及答案
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间
。
动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
C语言基础练习100题(含答案)
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是__________.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 3 60、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}} 该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
C语言经典编程实例100题答案
C语言经典编程实例100题答案1. 打印Hello World!#include <stdio.h>int main() {printf("Hello World!");return 0;}2. 计算两个数的和#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}3. 输入一个数,判断是否为正数、负数或零#include <stdio.h>int main() {int num;printf("请输入一个数:"); scanf("%d", &num);if (num > 0) {printf("正数");}else if (num < 0) {printf("负数");}else {printf("零");}return 0;}4. 判断一个数是否为素数#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) { if (num % i == 0) {flag = 1;break;}}if (flag == 0)printf("%d是素数", num); elseprintf("%d不是素数", num); return 0;}5. 求斐波那契数列的第n项#include <stdio.h>int fibonacci(int n) {if (n <= 1)return n;return fibonacci(n - 1) + fibonacci(n - 2);}int main() {int n;printf("请输入要求第几项:");scanf("%d", &n);printf("第%d项的值为:%d", n, fibonacci(n));return 0;}6. 判断一个数是否为回文数#include <stdio.h>int main() {int num, reversedNum = 0, remainder, originalNum; printf("请输入一个数:");scanf("%d", &num);originalNum = num;while (num != 0) {remainder = num % 10;reversedNum = reversedNum * 10 + remainder; num /= 10;}if (originalNum == reversedNum)printf("%d是回文数", originalNum);elseprintf("%d不是回文数", originalNum);return 0;}7. 打印九九乘法表#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; ++i) {for (j = 1; j <= i; ++j) {printf("%d * %d = %d\t", j, i, j * i);}printf("\n");}return 0;}8. 输入一个数,判断是否为偶数#include <stdio.h>int main() {int num;printf("请输入一个数:");scanf("%d", &num);if (num % 2 == 0)printf("偶数");elseprintf("奇数");return 0;}9. 冒泡排序#include <stdio.h>void bubbleSort(int array[], int size) { int i, j, temp;for (i = 0; i < size - 1; ++i) {for (j = 0; j < size - i - 1; ++j) {if (array[j] > array[j + 1]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}int main() {int array[] = {5, 2, 8, 12, 1};int size = sizeof(array) / sizeof(array[0]); bubbleSort(array, size);printf("排序后的数组:");for (int i = 0; i < size; ++i) {printf("%d ", array[i]);}return 0;}10. 判断一个数是否为完数#include <stdio.h>int main() {int num, i, sum = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 1; i < num; ++i) {if (num % i == 0) {sum += i;}}if (sum == num)printf("%d是完数", num); elseprintf("%d不是完数", num); return 0;}......(一共100题答案)这些是C语言经典编程实例的部分答案,希望对您有所帮助。
c语言编程习题及答案
c语言编程习题及答案C语言是一种广泛使用的计算机编程语言,以其高效性和灵活性而闻名。
以下是一些C语言编程习题及其答案,供学习者练习和参考。
习题1:求两个数的和编写一个C程序,输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("%d + %d = %d\n", num1, num2, sum);return 0;}```习题2:计算圆的面积编写一个C程序,输入圆的半径,计算并输出圆的面积。
```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```习题3:判断一个数是奇数还是偶数编写一个C程序,输入一个整数,判断并输出它是奇数还是偶数。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d 是偶数。
\n", num);} else {printf("%d 是奇数。
100道C语言编程题参考答案
101道C语言编程题参考答案1000. 计算A+B 的问题49%(655/1347) 53% 01C语言基础1.#include<stdio.h>int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);return 0;}1001. Hello World! 82%(693/848) 18% 01C语言基础2.#include<stdio.h>int main(){printf("hello world!");return 0;}1004 两个整数的值互换43%(530/1235) 58% 01C语言基础3.#include <stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b); t=a;a=b;b=t;printf("%d %d",a,b);}1068 计算三门课程总分和平均分41%(482/1190) 60% 01C 语言基础4.#include <stdio.h>int main(){float a,b,c,zf,pj;scanf("%f%f%f",&a,&b,&c);zf=a+b+c;pj=zf/3;printf("%.2f %.2f",zf,pj);}1002 鸡兔同笼问题51%(443/872) 50% 02顺序结构5.#include "stdio.h"int main(){int a,b,x,y;scanf("%d%d",&a,&b);x=2*a-b/2;y=b/2-a;printf("%d %d",x,y);}1005 输出一个自然数的百位十位和个位上的各个数字63%(437/695) 37% 02顺序结构6.#include <stdio.h>main(){int n;scanf("%d",&n);printf("%d %d %d",(n/100)%10,(n/10)%10,n%10);}1006 输出字符(A-F)代表的十六进制数所对应的十进制值84%(387/462) 16% 02顺序结构7.#include "stdio.h"int main(){char n;scanf("%c",&n);switch(n){case 'A':printf("10");break;case 'B':printf("11");break;case 'C':printf("12");break;case 'D':printf("13");break;case 'E':printf("14");break;case 'F':printf("15");break;}}1008 求华氏温度所对应的摄氏温度73%(407/556) 27% 02顺序结构8.#include<stdio.h>main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("%.2f",c);}1009 已知斜边和一直角边计算三角形的另一直角边76%(415/547) 24% 02顺序结构9.#include<stdio.h>#include<math.h>main(){float xb,zb1,zb2;scanf("%f%f",&xb,&zb1);zb2=sqrt(xb*xb-zb1*zb1);printf("%.2f",zb2);}1069 已知三边计算三角形的面积64%(374/585) 36% 02顺序结构10.#include<stdio.h>#include<math.h>main(){double a,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%.6lf",s);}1070 输出小写字母的ASCII码及对应大写字母63%(378/602) 37% 02顺序结构11.#include<stdio.h>main(){char n;int x;scanf("%c",&n);x='a'-'A';printf("%d %c",n,n-x);}1071 保留两位小数72%(335/467) 29% 02顺序结构12.#include "stdio.h" int main(){double n;scanf("%lf",&n);n=(double)(((int)((n+0.005)*100.00))/100.0);printf("%lf",n);}1003 判断输入的一个字符是否是小写字母76%(373/492) 24% 03分支结构13.#include "stdio.h"#include "stdlib.h"#include "ctype.h"void main(){char ch1;ch1=getchar();if(islower(ch1)!=0){printf("%d",ch1);}elseprintf("ERROR");}1007 简单字符加密变换A->F 72%(322/450) 28% 03分支结构14.#include<stdio.h>main(){char a;scanf("%c",&a);a=(a-'A'+5)%26+'A';printf("%c\n",a);}1010 判断输入的一个字符是什么类型的字符58%(337/583) 43% 03分支结构15.#include "stdio.h"#include "Ctype.h"void main(){char n;scanf("%c",&n);if(isalpha(n)!=0)printf("capital");else if(isdigit(n)!=0)printf("number");elseprintf("other");}1011 判断一个学生的成绩等级70%(375/536) 30% 03分支结构16. #include "stdio.h"void main(){int n;scanf("%d",&n);if(n<60)printf("failed");else if(n>=60&&n<80)printf("middle");elseprintf("excellent");}1012 输出数字(1-7)对应的英文星期名称的简写63%(337/536) 38% 03分支结构17.#include "stdio.h"void main(){int n; /*Mon, Tues, Wed, Thu, Fri, Sat, Sun*/scanf("%d",&n);switch(n){case 1: printf("Mon");break;case 2: printf("Tues");break;case 3: printf("Wed");break;case 4: printf("Thu");break;case 5: printf("Fri");break;case 6: printf("Sat");break;case 7: printf("Sun");break;}}1013 给定三个边长的值判断是否能够构成三角形53%(347/650) 47% 03分支结构18.#include "stdio.h"#include<math.h>void main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(abs(a-b)<c&&a+b>c)printf("YES");elseprintf("NO");}1014 将输入的三个数按从小到大的顺序输出67%(308/460) 33% 03分支结构19.#include<stdio.h>int main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z); if(x>y){t=x;x=y;y=t;}if(y>z){t=z;z=y;}if(x<t)y=t;else{y=x;x=t;}printf("%d %d %d",x,y,z);}1015 编程计算一个分段函数75%(319/428) 25% 03分支结构20.#include "stdio.h"void main(){float x;scanf("%f",&x);if (x<1.0)printf("%.2f",x);else if (x>=1.0&&x<10.0)printf("%.2f",2*x-1);elseprintf("%.2f",3*x-11);}1073 这个数能被3整除吗?68%(374/546) 32% 03分支结构21.#include "stdio.h"void main(){float x;scanf("%f",&x);if (x<1.0)printf("%.2f",x);else if (x>=1.0&&x<10.0)printf("%.2f",2*x-1);elseprintf("%.2f",3*x-11);}1074 这个月有多少天?54%(290/542) 46% 03分支结构22.#include <stdio.h>main(){int y,m;scanf("%d %d",&y,&m);switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31");break;case 4:case 6:case 9:case 11:printf("30");break;case 2:if(y%100 == 0 && y%400 ==0)printf("29");else if(y%100 != 0 &&y%4 ==0)printf("29");elseprintf("28");break;}}1075 模拟加减乘除计算器76%(274/361) 24% 03分支结构23.#include "stdio.h"void main(){float a,b;char p;scanf("%f%c%f",&a,&p,&b);switch(p){case '+': printf("%.6f",a+b);break;case '-': printf("%.6f",a-b);break;case '*': printf("%.6f",a*b);break;case '/': printf("%.6f",a/b);break;}}1076 输出三个数中的最大数和最小数77%(298/386) 23% 03分支结构24.#include<stdio.h>main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a>=b&&b>=c){printf("%d %d",a,c);}if(a>=c&&c>=b){printf("%d %d",a,b);}if(b>=a&&a>=c){printf("%d %d",b,c);}if(b>=c&&c>=a){printf("%d %d",b,a);}if(c>=a&&a>=b){printf("%d %d",c,b);}if(c>=b&&b>=a){printf("%d %d",c,a);}}1077 个人所得税问题(1)71%(275/389) 30% 03分支结构25.#include<stdio.h>main(){float s,r,t;scanf("%f",&s);if(s<=850)r=0;else if(s>850&&s<=1350)r=5;else if(s>1350&&s<=2850)r=10;else if(s>2850&&s<=5850)r=15;else if(s>5850)r=20;t=r*(s-850)/100;printf("%.2f\n",t);}1078 出租车收费问题66%(226/340) 33% 03分支结构26.#include<stdio.h>main(){int b;float a;double t,s;scanf("%f %d",&a,&b);t=a+b/5.0;if(t<=3)s=10;else if(t>=3&&t<=10)s=10+((double)t-3.0)*2;else if(t>10)s=10+14+(t-10)*3.0;printf("%.0f",s);}1079 学生综合测评问题49%(259/525) 51% 03分支结构27.#include<stdio.h>main(){int a,b;scanf("%d",&a);switch(a){case 0:b=0;break;case 1:b=1;break;case 2:case 3:b=2;break;case 4:case 5:case 6:case 7:b=a;break;case 8:b=8;break;case 9:b=8;break;case 10:b=8;break;default :b=10;break;}printf("%d",b);}1080 个人所得税问题(2)76%(247/327) 25% 03分支结构28.#include<stdio.h>main(){float s,r,t;scanf("%f",&s);if(s<=850){r=0;t=r*(s-850)/100;}else if(s>850&&s<=1350){r=5;t=r*(s-850)/100;}else if(s>1350&&s<=2850){r=10;t=r*(s-1350)/100+25;}else if(s>2850&&s<=5850){r=15;t=r*(s-2850)/100+175;}else if(s>5850){r=20;t=r*(s-5850)/100+625;}printf("%.2f\n",t);}1081 他(她)的实足年龄是...... 55%(243/438) 44% 03分支结构29.#include<stdio.h>main(){int y1,y2,m1,m2,d1,d2,s;scanf("%d %d %d\n%d %d %d\n",&y1,&m1,&d1,&y2,&m2, &d2);s=y2-y1;if(m1>m2)s--;else if(m1==m2&&d1>d2)s--;printf("%d",s);}1016 将一个小整数逆序输出70%(298/425) 30% 04循环结构30.#include "stdio.h"#include "math.h"void main(){int i,j,n,t,k;int s=0,ipow=1,jpow=1;scanf("%d",&n);for(i=1;;i++){ipow=ipow*10;if(n>=ipow);else break;}for(j=0;j<=i;j++){int fpow=1;t=(n/jpow)%10;jpow=jpow*10;for(k=1;k<=i-j-1;k++){fpow=fpow*10;}s=s+t*fpow;}printf("%d",s);}1017 计算一个数字的各位数字之和70%(328/466) 30% 04循环结构31.#include<stdio.h>main(){int n,m=0;scanf("%d",&n);while(n){m+=n%10;n/=10;}printf("%d",m);}1018 求两个数之间有多少个数的各位上数字之和为7 51%(209/412) 49% 04循环结构32.#include<stdio.h>main(){long int a,b,t,k,s,i;long sum=0;scanf("%d %d",&a,&b);if(a<b){for(i=a;i<=b;i++){k=i;s=0;do{t=k%10;s=s+t;k=k/10;}while(k>0);if(s==7)sum=sum+1;}}if(a>b){for(i=b;i<=a;i++){k=i;s=0;do{t=k%10;s=s+t;k=k/10;}while(k>0);if(s==7)sum=sum+1;}}printf("%ld",sum);}1019 判断一个整数是否是素数62%(273/440) 38% 04循环结构33.#include "stdio.h"#include<math.h>void main(){int i,s=0,n;scanf("%d",&n);for(i=1;i<=sqrt(n);i++){if(n%i==0)s++;}if(s==1)printf("YES");elseprintf("NO");}1020 输出n - m 之间的所有素数80%(226/282) 20% 04循环结构34.#include "stdio.h"void main() {int n,m;int i,j;scanf("%d %d",&n,&m);for(i=n;i<=m;i++){for(j=2;j<i;j++){if(i%j==0)break;}if(j>=i)printf("%d\n",i);}}1021 1到m之间有哪些数能被7或被11整除?82%(263/322) 18% 04循环结构35.#include "stdio.h"void main(){int i,n;scanf("%d",&n);for(i=1;i<=n;i++){if(i%7==0||i%11==0)printf("%d\n",i);}}1022 编程计算1+3+5+7+... 的值68%(321/472) 32% 04循环结构36.#include "stdio.h"int main(){int s=0,i,n;scanf("%d",&n);for(i=1;i<=n;++i)s=s+2*i-1;printf("%d",s);}1023 计算 1 !+2 !+3 !+… 前n 项的和66%(307/466) 34% 04循环结构37. #include "stdio.h"int fun(int);int main(){int i=1,n;long s=0;scanf("%d",&n);do{s=s+fun(i);i++;}while(i<=n);printf("%d",s);}int fun(n){if(n==1)return 1;elsereturn fun(n-1)*n;}1024 输出100-999之间的所有水仙花数70%(244/347) 30% 04循环结构38.#include "stdio.h"void main(){int a,b,c,i;int s;for(i=100;i<=999;i++){a=i/100;b=(i/10)%10;c=i%10;s=a*a*a+b*b*b+c*c*c;if(s==i)printf("%d\n",i);}return 0;}1025 求输出的数既是完全平方数又有两位相同的数76%(188/248) 24% 04循环结构39.#include "stdio.h"void main(){int i,j;int a,b,c;for(i=100;i<=999;i++)for(j=10;j<=33;j++){a=i/100;b=(i/10)%10;c=i%10;if(i==(j*j)&&(a==b||a==c||b==c))printf("%d\n",i);}}1026 判断一个数是否是完数85%(199/233) 14% 04循环结构40.#include "stdio.h"void main(){int i=1,s=0;int n;scanf("%d",&n);while(i<=n/2){if(n%i==0)s=s+i;i++;}if(s==n)printf("YES");elseprintf("NO");}1027 求1+22+333+ … 前n 项的和53%(216/407) 47% 04循环结构41.#include <stdio.h>main(){int i,n,t,sum=0,a=0;scanf("%d",&n);for(i=1;i<=n;i++){a=a*10+1;t=a*i;sum=sum+t;}printf("%d",sum);}1028 求sum=b+bb+bbb+bbbb+... 70%(220/315) 31% 04循环结构42.#include<stdio.h>main(){int m,b,i,t,a=0,sum=0;scanf("%d%d",&b,&m);for(i=1;i<=m;i++){a=a*10+1;t=b*a;sum=sum+t;}printf("%d",sum);}1029 求1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值83%(229/277) 18% 04循环结构43.#include "stdio.h"int main(){int i=2,detax;float s=1,t=1;scanf("%d",&detax);do{s=s-t/i;i++;t=-t;}while(i<=detax);printf("%.6f",s);}1030 求1-1/(2*2)+1/(3*3)-1/(4*4)+1/(5*5)-1/(6*6)+ … 前n 项值92%(208/226) 8% 04循环结构44.#include "stdio.h"int main(){int i=2;float s=1,t=1,n;scanf("%f",&n);do{s=s-t/(i*i);i++;t=-t;}while(i<=n);printf("%.6f",s);}1031 编程计算∏的近似值59%(169/285) 41% 04循环结构45.#include "stdio.h"int main(){int i=2;double s=1,t=1,detax;scanf("%lf",&detax);do{s=s-t/(2*i-1);i++;t=-t;}while(1.0/(2*i-1)>=detax);printf("%lf",4*s);}1032 编程计算1+x/2+2*x*x/3+ 3*x*x*x/5+ 5*x*x*x*x/8+ …… 78%(120/153) 22% 04循环结构46.#include "stdio.h"int f(int);void main(){int i;float x,t=1,s=1;scanf("%f",&x);for(i=1;;i++){t=t*x;s=s+f(i)*t/f(i+1);if(f(i)*t/f(i+1)<0.000001){printf("%.6f",s);break;}}} int f(n){if(n==1)return 1;else if(n==2)return 2;elsereturn f(n-1)+f(n-2);}1033 打印图形72%(162/226) 29% 04循环结构47.#include "stdio.h"void main(){int i,j,k,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=n-i;j<n-1;j++)printf(" ");if(j>=n-1)for(k=1;k<=2*(n-i)+1;k++)printf("*");if(k>2*(n-i)+1)printf("\n");}}1034 求解中国剩余定理的问题81%(167/205) 18% 04循环结构48.#include "stdio.h"void main(){int i,n;scanf("%d",&n);for(i=1;i<=n;i++){if(i%3==1&&i%5==2&&i%7==3)printf("%d\n",i);}}1035 哪些数加上n 后是完全平方数且加上m 后也是完全平方数66%(156/235) 34% 04循环结构49.#include "stdio.h"#include<math.h>void main(){int i;int n,m;double nsqrt,msqrt;scanf("%d %d",&n,&m);for(i=1;i<=100000;i++){nsqrt=sqrt(i+n);msqrt=sqrt(i+m);if(nsqrt-(int)sqrt(i+n)==0&&msqrt-(int)sqrt(i+m)==0)printf("%d\n",i);}}1084 求解不定方程的非负整数的根94%(154/164) 6% 04循环结构50.#include "stdio.h"void main(){int x,y,z;int i;for(i=4;i<=100;i=i+4){x=i;if((300+3*x)%4==0){z=(300+3*x)/4;y=(100-7*x)/4;}if(x>0&&y>0&&z>0)printf("%d %d %d\n",x,y,z);}}1085 百钱百鸡问题96%(174/182) 4% 04循环结构51.#include "stdio.h"void main(){int n,m;int i;scanf("%d %d",&n,&m);for(i=1;;i++){if((n+i)==2*(m+i)){printf("%d",i);}}}1086 多少年后父亲的年龄是儿子的年龄的2倍77%(185/241) 23% 04循环结构52.#include "stdio.h"void main(){int n,m;int i;scanf("%d %d",&n,&m);for(i=1;i>0;i++){if((n+i)==2*(m+i)){printf("%d",i);break;}}}1087 特殊的四位数96%(171/178) 4% 04循环结构53.#include <stdio.h>main(){int a,b,c,d,i,k,f;for(i=1000;i<=9999;i++){ a=i%10;b=(i/10)%10;c=(i/100)%10;d=i/1000;f=a*1000+b*100+c*10+d;for(k=2;k<=9;k++){if(i*k==f&&a!=0)printf("%d\n",i);}}}1082 计算F(G(x))的值76%(155/204) 24% 05函数54.#include "stdio.h"#include<math.h>void main(){double x;double g,f;scanf("%lf",&x);g=2*x+1;f=(g+1)*(g+1);printf("%.2lf",f);}1083 哪些数是回文数?74%(111/150) 26% 05函数55.#include<stdio.h>int f(int y){int s=0;do{s=s*10+y%10;y=y/10;}while(y>0);return s;}main(){int m,n,i;scanf("%d%d",&m,&n);for(i=m;i<=n;i++){if(i==f(i))printf("%d\n",i);}}1088 编写阶乘函数求表达式的值91%(144/158) 8% 05函数56.#include "stdio.h"int fun(int);void main(){int n,m;double s;scanf("%d %d",&n,&m);s=(double)fun(m)/(fun(n)*fun(n-m));printf("%.6f",s);}int fun(x){if(x==1)return 1;elsereturn x*fun(x-1);}1089 编程计算两个数的最大公约数92%(131/143) 9% 05函数57.#include "stdio.h"void main(){int t,i;int m, n;scanf("%d %d",&m,&n);for(i=1; ;i++){if(m%n==0){printf("%d",n);break;}else{t=m%n;m=n;n=t;}}}1090 计算一个数的所有质因数64%(121/189) 37% 05函数58.#include "stdio.h" void main(){int k,l;int j;scanf("%d",&k);for(j=2;j<k;j++){if(k%j==0){for(l=2;l<j;l++)if(j%l==0) break;}if(l>=j)printf("%d\n",j);}}1095 求递归函数的值96%(114/119) 4% 05函数59.#include "stdio.h"int f(int);void main(){int x;scanf("%d",&x);printf("%d",f(x));}int f(n){if(n==1)return 10;elsereturn f(n-1)+2;}1036 将一维数组中的数据按逆序重新存放81%(134/166) 20% 06数组和指针60.#include "stdio.h"void main(){int a[20];int i,j,n;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(j=n-1;j>=0;j--){printf("%d ",a[j]);}}1037 统计一组数据中正数、负数和零的个数84%(127/152) 17% 06数组和指针61.#include<stdio.h>main(){int n,a[20];int i,j,k,l;int p=0,b=0,c=0;scanf("%d\n",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(j=0;j<n;j++){if(a[j]>0)p++;}for(k=0;k<n;k++){if(a[k]<0)b++;}for(l=0;l<n;l++){if(a[l]==0)c++;}printf("%d %d %d",p,b,c);}1038 计算一组数据的平均值92%(132/144) 9% 06数组和指针62.#include "stdio.h"void main(){float a[20];int i,j,n;float s=0,pj;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%f",&a[i]);}for(j=0;j<n;j++){s=s+a[j];}pj=s/n;printf("%.6f",pj);}1039 统计一个串中字母、数字和其它字符的个数66%(104/158) 31% 06数组和指针63.#include<stdio.h>main(){char c[1000];int i,n=0,z=0,q=0;gets(c);for(i=0;c[i];i++){if(c[i]>='0'&&c[i]<='9')n=n+1;else if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z')) z=z+1;else q++;}printf("%d %d %d",z,n,q);}1040 判断一组数据是否是从小到大的序列76%(100/131) 24% 06数组和指针64.#include "stdio.h"void main(){int ch[20];int i,j=0,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&ch[i]);while(n-j-1){if(ch[j]>=ch[j+1]) break;j++;}if(j>=n-1)printf("YES");elseprintf("NO");}1041 判断一个字符串是否是回文78%(103/132) 22% 06数组和指针65.#include <stdio.h>#include <string.h>void main(){char ch[50];int i, n;scanf("%s",ch);n=strlen(ch);for(i=0;i<n;i++){if(ch[i]!=ch[n-i-1]) break;}if(i>=n)printf("YES");elseprintf("NO");}1042 数组中有这个数吗?76%(94/123) 24% 06数组和指针66.#include "stdio.h"void main(){int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};int i,j,n;scanf("%d",&n);for(i=0;i<=2;i++){for(j=0;j<=2;j++){if(n==(3*i+j+1)){printf("%d %d",i,j);}}}if(n>=10)printf("-1");}1043 求出二维数组中最大元素的值及其位置79%(97/123) 20% 06数组和指针67.#include "stdio.h"void main(){int ch[3][4];int i,j,n,m;int max;for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)scanf("%d",&ch[i][j]);max=ch[0][0];for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)if(ch[i][j]>=max){max=ch[i][j];n=i;m=j;} printf("%d %d %d",max,n,m);}1044 交换二维数组中最大元素和最小元素80%(87/109) 20% 06数组和指针68.#include "stdio.h"void main(){int ch[3][4];int i,j,n,m;int t;int x1,y1,x2,y2;int max,min;for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)scanf("%d",&ch[i][j]);max=ch[0][0];for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)if(ch[i][j]>=max){max=ch[i][j];x1=i;y1=j;}min=ch[0][0];for(n=0 ; n<3 ; n++)for(m=0 ; m<4 ; m++)if(ch[n][m]<=min){min=ch[n][m];x2=n;y2=m;}t=ch[x1][y1];ch[x1][y1]=ch[x2][y2];ch[x2][y2]=t;for(i=0 ; i<3 ; i++){for(j=0 ; j<4 ; j++)printf("%d ",ch[i][j]);printf("\n");}}1045 统计字符串中单词数量60%(85/142) 41% 06数组和指针69.#include<stdio.h> #include<string.h>#include<Ctype.h> int sum(char []); main(){char s[101];gets(s);printf("%d",sum(s)); }int sum(char s[]){int i=0,j=0,n=0; char temp[20]={'\0'}; do{if(isalpha(s[i]))temp[j++]=s[i]; else{temp[j]='\0';if(strlen(temp)>0)n=n+1;j=0;}}while(s[i++]); return n;}1046 将一个字符串中所有字母转成大写87%(92/106) 13% 06数组和指针70.#include<stdio.h>#include<string.h>main(){int i;char a[101];gets(a);for(i=0;a[i];i++){if(a[i]>='a'&&a[i]<='z')a[i]-=32;}puts(a);}1047 删除字符串中的前导*号83%(90/109) 18% 06数组和指针71.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0,k=0;gets(s);while(s[i++]=='*')k++;for(i=k;i<100;i++)a[j++]=s[i];puts(a);}1048 删除字符串的*号后缀76%(86/113) 15% 06数组和指针72.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0,k=0;gets(s);while(s[i++]!='\0')k++;while(s[k-1]=='*'){k--;}for(i=0;i<k;i++)a[j++]=s[i];puts(a);}1049 删除字符串中所有的*号87%(92/106) 13% 06数组和指针73.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0;gets(s);do{if(isalpha(s[i]))a[j++]=s[i];}while(s[i++]);puts(a); }1094 求矩阵的两对角线上的元素之和78%(66/85) 23% 06数组和指针74.#include "stdio.h"void main(){int a[10][10],n;int i,j,s1=0,s2=0,s;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++)for(j=0;j<n;j++){if(i==j)s1=s1+a[i][j];if( (i+j) == n-1&&i!=j)s2=s2+a[i][j];}s=s1+s2;printf("%d",s);}1097 结构体:按成绩排序77%(43/56) 22% 07结构体75.#include "stdio.h"struct student{char number[11];char name[9];int chengji;};int main(){int i,j;int n;struct student zg[100];struct student q;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji); }for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if(zg[i].chengji>zg[j].chengji){q=zg[i];zg[i]=zg[j];zg[j]=q;}}for(i=0;i<n;i++){printf("%s %s %d\n",zg[i].number,zg[i].name,zg[i].chengji);}}1098 结构体:求最高分和最低分83%(40/48) 17% 07结构体76.#include "stdio.h"struct student{char number[11];char name[9];int chengji;};int main(){int i,j,t,s;int n;int maxmin;struct student zg[100];scanf("%d",&n);for(i=0;i<n;i++){scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji);}maxmin=zg[0].chengji;for(i=1;i<n;i++)if(maxmin<zg[i].chengji){maxmin=zg[i].chengji;t=i;}for(j=1;j<n;j++)if(maxmin>zg[j].chengji){maxmin=zg[j].chengji;s=j;}printf("%s %s %d\n",zg[t].number,zg[t].name,zg[t].chengji);printf("%s %s %d",zg[s].number,zg[s].name,zg[s].chengji); }1099 结构体:计算学生平均分74%(39/53) 27% 07结构体77.#include<stdio.h>struct student{char num[10];char name[20];float fs1,fs2; }main(){struct student stu[20];int n,i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",&stu[i].num);scanf("%s",&stu[i].name);scanf("%f",&stu[i].fs1);scanf("%f",&stu[i].fs2);}for(i=0;i<n;i++)stu[i].fs1=(stu[i].fs1+stu[i].fs2)/2;for(i=0;i<n;i++)printf("%s %s %0.1f\n",stu[i].num,stu[i].name,stu[i].fs1); }1100 结构体:在线编程评测系统的排名57%(34/60) 47% 07结构体78.#include<stdio.h>int fun(struct student*p,struct student*q);struct student{char num[20];int men;int fen;}main(){struct student stu[20];struct student;int n,i,j;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s %d %d",&stu[i].num,&stu[i].men,&stu[i].fen); }for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(stu[i].men<stu[j].men)fun(&stu[i],&stu[j]);if(stu[i].men==stu[j].men&&stu[i].fen>stu[j].fen)fun(&stu[i],&stu[j]);}}for(i=0;i<n;i++)printf("%d %s %d %d\n",i+1,stu[i].num,stu[i].men,stu[i].fen); }int fun(struct student*p,struct student*q){struct student a;a=*p;*p=*q;*q=a;return 0;}1050 [初级竞赛题] 亲和数82%(89/109) 19% 09综合应用79.#include<stdio.h>main(){int a,b,i,j,d,sum=0,sun=0;scanf("%d %d",&a,&b);for(i=1;i<a;i++){d=a/i;if(d*i==a){sum=sum+i;}}for(j=1;j<b;j++){d=b/j;if(d*j==b){sun=sun+j;}}if(sum==b&&sun==a)printf("YES\n");elseprintf("NO\n");}1051 [初级竞赛题] 陶陶摘苹果81%(70/86) 19% 09综合应用80.#include<stdio.h>main(){int a[10];int i,j,n=0;for(i=0;i<10;i++){scanf("%d",&a[i]);}scanf("%d",&j);for(i=0;i<10;i++){if(a[i]<=j+30){n+=1;}}printf("%d\n",n);}1052 [初级竞赛题] Lucky Number 55%(36/66) 46% 09综合应用81.#include<stdio.h>main(){int a[1000];int i,j,n;int k=-1,s=1001;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){for(j=0;j<n;j++)if(a[i]==a[j]&&i!=j){break;}if (j==n){if(a[i]<s)。
(完整版)C语言程序设计练习题(含程序及参考答案)
C 语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main 函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用) 1、定义一个函数 int fun(int a,int b,int c),它的功能是:若 a,b,c 能构成等边三角形函数返回 3,若能构成等腰三角形函数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。
#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
- 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;8. 数字特征值题目内容:对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。