经典练习C语言编程的题目及标准答案整理
C语言习题及参考答案

C语言习题及参考答案C语言习题集习题一一.填空题1.C程序是由(函数)构成的,一个C程序中至少包含(main 函数)。
因此,( 函数) 是C程序的基本单位。
2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。
3.函数体一般包括( 变量声明) 和( 语句) 。
二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main 函数最后结束。
【错】2.main函数必须写在一个C程序的最前面。
【错】3.一个C程序可以包含若干的函数。
【对】4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【对】5.C程序的注释只能是一行。
【错】6.C程序的注释不能是中文文字信息。
【错】8.可以使用Visual C++ 6.来编译和连接一个C程序。
【对】9.可以使用Visual C++ 6.来运行一个C程序。
【对】10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。
【对】三.简答题1.写出一个C程序的基本结构。
2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。
四.编程题1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。
(提示:使用键盘上的一些符号)。
2.提高题:试编写一个C程序,输出如下信息。
************************* @ @ ****** @ *************************试试看,可以输出其他组合图案吗?习题二一.选择题1、合法的字符常量是(ACD)。
A)…\t?B) “A” C)…a?D)?\x32?2、合法的字符常量是( D) 。
A)…\084?B) …\84? C)…ab?D)?\x43?3、(B)是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char4、在以下各组标识符中,合法的标识符是((4))。
C语言练习题(带标准答案)-绝对经典题目不看后悔

C语言练习题(带答案)-绝对经典题目不看后悔————————————————————————————————作者:————————————————————————————————日期:1单选题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言编程题精选及参考答案

参加8至10次:加8分; 参加10次以上:加10分。 程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给 出相应提示。 77. 编程计算如下表达式的值:1/2+1/3+...+1/n,其中的 n 在程序运行时输入。 78. 从键盘输入一元二次方程的三个系数,要求计算出其根:若有不相等的实根则输出两 实根;若有相等的实根则只输出一个;若无实根则给出相应提示;若输入导致一元二次 方程不成立,则给出提示。 79. 求以下不定方程组的所有正整数解:
22. 输入 n,求下列级数前 n 项的和。
1+1/2-2/3+3/4……
23. 编写程序用于判断一个数是否是素数。
24. 编程序输出1--1000内的所有素数。所谓素数是指除了能被1和它本身之外不能被其
它数整除的数。
25. 输入20个数,先按原来顺序输出,再将数组中元素逆置后输出,即将第1个数跟
第20个互换、第2个数跟第19个互换......。
48. 编程计算下面公式:
49. 编一子程序实现十进制数转换为其它进制数。主程序将十进制数43 和17分别转换为 二进制数和八进制数。
50. 编一个程序计算一元二次方程的根。
51. 编程输入一个整数,若为四位正整数则要求正确分离出其个、十、百、千位及中间 的两位数并分别输出,如输入的是1234,则输出应该为4、3、2、1、23;否则给出一 个出错提示。
68. 今年父亲30岁,儿子6岁,问多少年后父亲的年龄是儿子年龄的2倍? 69. 一个四位数,当它逆向排列时得到的4位数是它自身的整数倍,请找出所有符合这一
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语言程序设计_习题大全(含答案) C语言程序设计_习题大全(含答案)C语言程序设计是计算机科学与技术领域中非常重要的一门课程,对于学习和掌握程序设计的基本原理和方法具有重要意义。
在学习这门课程过程中,习题的练习和掌握是至关重要的一环。
本文将向大家介绍一份包含答案的C语言程序设计习题大全,帮助读者拓宽思路,加深对C语言程序设计的理解。
第一章:基础知识练习习题1:请编写一个C程序,输出"Hello, World!"。
答案:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```习题2:请编写一个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;}```第二章:条件语句练习习题3:请编写一个C程序,判断某年份是否为闰年。
答案:```c#include <stdio.h>int main() {int year;printf("请输入年份:");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {printf("%d年是闰年\n", year);} else {printf("%d年不是闰年\n", year);}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语言编程题带答案
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 ,用于存储数组元素的总和。
C语言习题集(含答案).
一、单选题:(1) 在C语言提供的合法的关键字是()A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)'\084' B) '\x43'C)'ab' D) "\0"(3)若有定义和语句:char s[10]: s="abcd"; printf("%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p, a=10, b=20;pp=&p; p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10, 20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010, v=0x10,w=10;printf("%d,%d,%d\n", u, v, w);则输出结果是( )A) 8,16,10B) 10,10,10 C)8, 8,10 D) 8,10,10(6) 若有以下定义和语句char c1=' b', c2='e';printf("%d,%c\n", c2-c1,c2-'a'+"A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7) 若有以下定义:char s[20]="programming",*ps=s;则不能代表字符o的表达式是( )A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps(8) 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )for (i=5; i; i--)for(j=0; j<4; j++) {...}A) 20B) 25 C) 24 D) 30(9)若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是( )A) 4B) 5 C) 9 D) 10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是( )A) *p B) a[10]C)*a D) a[p-a](11)下面程序的输出是( )main( ){ char *s="121";int k=0, a=0, b=0;do{k++;if(k%2==0) {a=a+s[k]-'0';continue;}b=b+s[k]-'0'; a=a+s[k]-'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C) k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main( ){ unsigned a=32768;printf("a=%d\n", a);} 运行结果:-32768A)a=-32768 B)a=32767C)a=-32767 D)a=-1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){ case1.0: printf("*\n"); { case1, 2: printf("*\n");case2.0: printf("**\n"); case3: printf("**\n");} }C) switch (a+b)D) switch (a+b);{ case 1: printf("\n"); { case 1: printf("*\n");case 1+2: printf("**\n"); case 2: printf("**\n");} }(14) 以下程序输出的结果是( )main( ){ char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"}, k;for (k=1;k<3;k++)printf("%s\n",&w[k][k]);}A) ABCD B) ABCDFGH EFGKL IJMC) EFG D) FGHJK KLO(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是( )A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b(17) C语言中运算对象必须是整型的运算符是( )A) %=B) / C) = D) 〈=(18) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )A) 1 B) 2 C) 2.0 D) 2.5(19) 若变量a、i已正确定义,且i已正确赋值,合法的语句是( )A) a==1 B) ++i; C) a=a++=5; D) a=int(i);(20) 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是( )A) 0 B) 0.5 C) 1 D) 2(21) 有如下程序main( ){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是( )A) 3 4 B) 4 2 C) 4 3 D) 3 3(22) 能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( )A) a>=10 or a<=0 B) a>=0|a<=10C) a>=10 &&a<=0 D) a>=10 || a<=0main( ){ 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=2(24) 有如下程序main( ){ float x=2.0, y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf(“%f\n”,y); }该程序的输出结果是( )A) 0.000000 B) 0.250000 C) 0.500000D) 1.000000(26) 有如下程序main( ){ int i, sum;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是( )A) 6 B) 3 C) 死循环D) 0main ( ){ int x=23;do{ printf(“%d”,x--);} while(!x); }该程序的执行结果是( )A) 321 B) 23C) 不输出任何内容D) 陷入死循环(28) 有如下程序main( ){ int n=9;while(n>6) {n--; printf(“%d”,n); } }该程序段的输出结果是( )A) 987 B) 876C) 8765 D) 9876(29) 设有说明语句:char a=’\72’;则变量a( )A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法(30) 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )A) 3 B) 4 C) 5 D) 有语法错(31) 有如下程序int func(int a,int b){ return(a+b); }main( ){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%\d\n”,r); }该程序的输出的结果是( )A) 12 B) 13 C) 14 D) 15int *p, a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( )A) 12 B) 11 C) 10 D) 编译出错(33) 对于基类型相同的两个指针变量之间,不能进行的运算是( )A) < B) = C) + D) -(34) 有如下程序long fib(int n){ if (n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){ printf(“%d\n”, fib(3)); }该程序的输出结果是( )A) 2 B) 4 C) 6 D) 8(35) 在C语言中,函数的隐含存储类别是( )A) auto B) static C) extern D) 无存储类别(36) 有如下程序#define N 2#define M N+1#define NUM 2*M+1main( ){ int i;for(i=1;i<=NUM;i++) printf(“%d\n”,i);}该程序中的for循环执行的次数是( )A) 5 B) 6C) 7 D) 8char fun(char *p){ return p; }该函数的返回值是( )A) 无确切的值B) 形参p中存放的地址值B) 一个临时存储单元的地址D) 形参p自身的地址值(38) 有如下程序段int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为( )A) true B) false C) 0 D) 1(39) 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;则数值为9的表达式是( )A) *p+9 B) *(p+8) C) *p+=9 D) p+8(40) 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是( )A) &t[3][2] B) t[3] C) t[1] D) t[2](41) 有如下程序main( ){ char ch[2][5]={“6937”,”8254”}, *p[2];int i,j,s=0;for(i=0;i<2;i++) p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’; j+=2)s=10*s+p[i][j]-‘0’;printf(“%d\n”,s); }该程序的输出结果是( )A) 69825 B) 63825 C) 6385 D) 693825(42)若有以下的定义:int a[ ]={1,2,3,4,5,6,7,88,9,10}, *p=a;则值为3的表式是( )A) p+=2, *(p++) B) p+=2,*++pC) p+=3, *p++ D) p+=2,++*p(43)假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0; x=35;if (!a) x--;else if(b) ; if(c) x=3; else x=4;A)34 B)4 C)35 D)3(44)在以下一组运算符中,优先级最高的运算符是( )A)<= B)= C)%D)&&(45)若有以下定义和语句:int w[2][3], (*pw)[3]; pw=w;则对w数组元素非法引用是( )A)*(w[0]+2) =*w[0][2]B)*(pw+1)[2]C)pw[0][0] =*w[0][0]D)*(pw[1]+2) =*w[1][2](46)若有以下程序片段:char str[ ]="ab\n\012\\\"";printf("%d\n", strlen(str));上面程序片段的输出结果是( )A)3 B)4 C)6D)12(47)函数调用strcat(strcpy(str1,str2),str3)的功能是( )A)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(48)以下对C语言函数的有关描述中,正确的是( )A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用解释:C函数可以递归调用,但不允许嵌套定义C) 函数必须有返回值,否则不能使用函数D) C程序中有调用关系的所有函数必须放在同一个源程序文件中(49) 以下叙述中不正确的是( )A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.B) 在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.C) 在C中, 外部变量的隐含类别是自动存储类别.D)在C中, 函数形参可以说明为register变量.(50) 以下程序的输出结果是( )#define sub1(char a, char b) {char c; c=a;a=b;b=c;}#define sub2(char *a, char b) {char c; c=*a;*a=b;b=c;}#define sub3(char *a, char *b) {char c; c=*a;*a=*b;*b=c;}main( ){ char a,b;a='A';b='B';sub3(&a,&b);putchar(a); putchar(b);a='A';b='B';sub2(&a,b);putchar(a); putchar(b);a='A';b='B';sub1(a,b);putchar(a);putchar(b);}A) BABBAB B) ABBBBAC) BABABA D) BAABBA(51)错误的转义字符是( )A) '\091'B) '\\' C) '\0' D) '\''(52)设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a, b 和c的值分别是( )A) 2, 1, 2 B) 2, 0, 3 C) 2, 2, 3 D) 2, 1, 3(53) 在C语言中,错误的常数是( )A) 1E+0.0B) 5 C) 0xaf D) 0L( 54) 设int k; 则语句for(k=0; k=1; k++);和语句for(k=0; k==1;k++);执行的次数分别是( )A) 无限和0B) 0和无限C) 都是无限D) 都是0(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )A) 只限某个函数B) 本文件C) 跨文件D)不限制作用域二、程序填空题:(10) 函数pi的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请你在下面的函数中填空,完成求π的功能。
C语言程序设计习题集及参考答案
C语言程序设计习题集及参考答案C语言程序设计习题集及参考答案一、简介C语言是一种广泛使用的程序设计语言,它具有高效、灵活和易于维护的特点。
在学习C语言的过程中,通过练习题的方式可以帮助我们加深对语言的理解和应用。
本文将提供一些C语言的练习题,并给出参考答案,以帮助读者巩固所学知识。
二、习题集1、选择题(1) C语言中的基本数据类型包括哪些? A. int, float, char B. int, float, double C. char, float, double D. int, float, boolean (2) 下列哪个标识符是合法的C语言变量名? A. 123 B. _abc C. ab-c D. a bc(3) 下面哪个运算符的优先级最高? A. + B. && C. ++ D. !2、填空题(1) 在C语言中,整数的默认存储类型是____________。
(2) 写出计算a和b的最大值的表达式:max = a ______ b; (3) 写出判断一个数是否为偶数的表达式:num % ______ == 0。
3、编程题(1) 编写一个程序,输出1到10之间的所有奇数和偶数。
(2) 编写一个程序,判断一个整数是否为素数。
如果是素数,输出"Yes",否则输出"No"。
(3) 编写一个程序,输入一个字符串,然后将字符串中的所有字母转换为大写。
三、参考答案1、选择题(1) C语言中的基本数据类型包括int、float和char,因此答案为A。
(2) 在C语言中,合法的标识符不能以数字开头,不能包含特殊字符和空格,因此选项A和C是错误的。
选项B中使用下划线作为变量名的一部分是合法的,因此是正确的选项。
选项D中的a和bc之间没有分隔符,不符合标识符的命名规则,因此也是错误的。
因此,答案为B。
(3) 在C语言中,运算符的优先级从高到低依次为:()、[]、.&、!、++、--、~、* &、+ -、% 、/ %、<< >>、< > <= >= 、== !=、& ^ |、&& ||以及所有的逻辑运算符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.逆序输出正三位数
#include<stdio.h>
intmain()
{
intinput,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()
{
intamount=100;
int price=0;
printf("请输入金额(元)");
scanf("%d",&price);
ﻩprintf("请输入票面");
scanf("%d",&amount);
int change=amount-price;
printf("找您%d元。
\n",change);
ﻩ
return0;
}
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);
return0;
}
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
输出样例:
153
370
371
407。