C语言操作题常考编程题库完整
- 格式:docx
- 大小:22.48 KB
- 文档页数:32
c语言编程题库100题,单项选择题1.有char c=’1’,下面说法中正确的是()。
A. 语句putc+2);的输入结果为51B. 语句put“%d”,c+2);的输出结果为3C. 语句put“%c”,c+2);的输入结果为51D. 语句put“%c”,c+2);的输出结果为32.设c1,c2均就是char型变量,则下面不恰当的函数调用为()。
A. scanf(”c1=2=%c”,&c1,&c2);B. get);C. putc2);D. putc1,c2);3.为了表示关系x>=y>=z,下面C语言表达式中正确的是()。
A. (x>=y)&&(y>=z)B. (x>=y)and(y>=z)C. (x>=y>=z)D. (x>=y)&(y>=z)4.设x,y,z,t为int型变量,则继续执行以下语句后,t的值()。
x=y=z=1;t=++x||++y&&++z;A. 不定值B. 2C. 1D. 05.对if语句中表达式的类型,下面正确的说法是()。
A. 必须就是关系表达式B. 必须是关系表达式或逻辑表达式C. 可以就是任一表达式D. 必须是关系表达式或算术表达式6.对for(表达式1;;表达式3)可以认知为()。
A. for(表达式1;0;表达式3)B. for(表达式1;表达式1;表达式3)C. for(表达式1;1;表达式3)D. for(表达式1;表达式3;表达式3)7.执行语句for(i=1;i++<4;);之后,变量i的值为()。
A. 3B. 4C. 5D. 不确定8.若二维数组a存有m列,则在a[i][j]前的元素个数为()。
A. j*m+iB. i*m+jC. i*m+j-iD. i*m+j+19.下面说法中正确的是()。
A. 在C语言中,可以采用动态内存分配技术,定义元素个数气门的数组B. 在C语言中,数组元素的个数可以不确定,允许随即变动C. 在C语言中,数组元素的数据类型可以不一致D. 在C语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数10.无法把字符串:“good!”参数值数组b的语句就是()。
c语言编程题库100题1. 计算两个整数的和编写一个C程序,接收两个整数作为输入并计算它们的和,并将结果输出。
2. 计算两个整数的差编写一个C程序,接收两个整数作为输入并计算它们的差,并将结果输出。
3. 计算两个整数的乘积编写一个C程序,接收两个整数作为输入并计算它们的乘积,并将结果输出。
4. 计算两个整数的商编写一个C程序,接收两个整数作为输入并计算它们的商,并将结果输出。
5. 判断一个整数是否为偶数编写一个C程序,接收一个整数作为输入并判断它是否为偶数,并将结果输出。
6. 判断一个整数是否为质数编写一个C程序,接收一个整数作为输入并判断它是否为质数(只能被1和自身整除的数),并将结果输出。
7. 计算一个整数的阶乘编写一个C程序,接收一个整数作为输入并计算它的阶乘,并将结果输出。
8. 计算一个整数的平方根编写一个C程序,接收一个整数作为输入并计算它的平方根,并将结果输出。
9. 判断一个字符串是否为回文字符串编写一个C程序,接收一个字符串作为输入并判断它是否为回文字符串(正向和反向读取都相同的字符串),并将结果输出。
10. 排序一个整数数组编写一个C程序,接收一个整数数组作为输入并对其进行排序,并将结果输出。
11. 求两个整数之间的最大公约数编写一个C程序,接收两个整数作为输入并计算它们的最大公约数,并将结果输出。
......(依此类推,共100道题)这是一个C语言编程题库,包含100道不同类型的题目。
你可以选择其中的题目进行练习和实践,通过解决这些问题来提升自己的C语言编程能力。
每道题目都有具体的描述和要求,你可以按照题目要求编写相应的代码,并运行测试。
如果遇到问题,可以参考相关的解法或向他人寻求帮助。
通过不断地练习和学习,你将逐渐掌握C语言的编程技巧和思维方式,提高自己在编程领域中的能力。
祝你编程愉快!。
计算机c语言编程题库1、求100之内自然数中最大的能被17整除的数。
void main(){ int i;for(i=100;i>0;i--)if(i%17==0)break;printf("%d\n",i);}2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
void main(){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%d\n",a,b,c);}}}3、计算并输出200-400之间不能被3整除的整数的和。
void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%d\n",sum);}4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。
void main(){ int i,n=0,sum=0;int a[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]>=0){ sum=sum+a[i];n++;}printf("非负个数是%d,sum=%d\n",n,sum);}5、求100之内自然数中偶数之和。
void main(){ int i,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%d\n",sum);}6、输入5个数,求和并输出。
要求编写求和的函数。
(完整版)C语⾔题库(带详解答案)⼀单项选择题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语言经典程序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 语言编程题第一题:打开程序Cprog061.c ,完成其中的fun (x )函数,使其计算:fun (x )={#include <stdio.h>#include <math.h>double fun(float x){/**/double y;if(x<3)y=x;else if(x>=3 && x<6)y=4-tan(3.8-x);elsey=4*log10(x)-12;return y;/**/}void main(){float x;double y;clrscr();printf("Please input x :\n");scanf("%f",&x);y = fun(x);printf("fun(%.2f)=%.2f\n",x,y);getch();}注:(1) 在一对”/**/”之间编写程序,以完成题目的要求;x 4-tg(3.8-x)4 lg x-12 x<3 3<=x<6 x>=6(2)不得删改程序中华的”/**/”注释和其它代码;(3)源程序在考生文件夹中;务必以原文件名保存程序;(4)Alt+Tab键,切换考试程序与Turbo C; Alt+Enter 键,切换Turbo C窗口大小第二题:打开程序cprog012.c,完成其中的函数fun2( ),实现如下功能:1)将数组a中大于0的元素,依次存放到数组b中;2)将数组b中的元素按照从大到小的顺序存放到数组c中;3)函数返回数组b中的元素个数.注: (1) 在一对”/**/”之间编写程序,以完成题目的要求;(2) 不得删改程序中的”/**/”注释和其它代码;(3) 源程序在考生文件夹中;务必以原文件名保存程序;(4) Alt+Tab键,切换考试程序与Turbo C; Alt+Enter键,切换Turbo C窗口大小#include <string.h>#include <conio.h>#include <math.h>#include <stdio.h>int fun2(int a[],int n,int b[],int c[]){/**/int i,j,num=0,flag,temp;for(i=0;i<n;i++){if(a[i]>0){b[num]=a[i];num++;}}for(i=0;i<num;i++){c[i]=b[i];}for(i=1;i<num;i++){flag=0;for(j=0;j<num-i;j++){if(c[j]<c[j+1]){flag=1;temp=c[j];c[j]=c[j+1];c[j+1]=temp;}}if(!flag)break;}return num;/**/}void main(){ int n = 10, i, nb;int aa[10] = {12, -10, -31, -18, -15, 50, 17, 15, -20, 20};int bb[10], cc[10];clrscr();printf("Number of array aa: %3d\n", n);printf("The array aa is: ");for(i=0; i<n; i++) printf("%6d", aa[i]);printf("\n");nb = fun2(aa, n, bb, cc);printf("The array bb is: ");for (i=0; i<nb; i++) printf("%6d", bb[i]);printf("\n");printf("The array cc is: ");for(i=0; i<nb; i++) printf("%6d", cc[i]);printf("\n");printf("Number of array bb: %4d\n", nb);getch();}.第三题:题目是否正确?打开程序cprog011.c,完成其中的函数func( ),实现计算数学表达式;cos x+tg2x+ln 161.8+|2x|例如: func(0.26)=1.858注: (1) 在一对”/**/”之间编写程序,以完成题目的要求;(2) 不得删改程序中的”/**/”注释和其它代码;(3) 源程序在考生文件夹中;务必以原文件名保存程序;(4) Alt+Tab键,切换考试程序与Turbo C; Alt+Enter键,切换Turbo C窗口大小#include <math.h>#include <stdio.h>double func(double x){/**/double y;y=(cos(x)+tan(2*x)+log(16))/(1.8+fabs(2*x)) ;return y ;/**/}void main(){clrscr();printf("func(0.26) = %6.3lf\n", func(0.26));printf("func(5.00) = %6.3lf\n", func(5.00));printf("func(8.50) = %6.3lf\n", func(8.50));getch();}第四题:打开程序cprog032.c,完成其中的prime( )函数,统计101~300之间的所有素数总个数;#include <stdio.h>#include <math.h>int prime(){/**/int i,j,num=0;for(i=101;i<=300;i++){for(j=2;j<i;j++)if(i%j==0)break;if(i==j)num++;}return num;/**/}void main(){int count;count=prime();printf("\nThe total of prime is %d.\n",count);getch();}第五题:打开程序Cprog041.c,完成其中的fun( )函数,使其计算:{ #include <stdio.h>#include <math.h>double fun(float x){/**/double y;if(x<=0)y=1;elsey=(2.6+fabs(x))/(3+sin(x));return y ;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);1 2.6+|x| 3+sin(x) X<=0x>0 fun(x)=y = fun(x);printf("fun(%.3f)=%.3f\n",x,y);getch();}第六题:打开程序cprog062.c,完成其中的函数char fun(float f),该函数先将f 代表的华氏温度转换成摄氏温度c,然后根据c 返回相应颜色的字母(‘w ’表示c<0,’B ’表示0<=c<25,’O ’表示25<=c<35,’R ’表示c>=35). 华氏温度与摄氏温度的转换公式为:#include <stdio.h>#include <math.h>char fun(float f){char code;/**/float c;c=5*(f-32)/9;if(c<0)code='W';else if(c>=0 && c<25)code='B';else if(c>=25 && c<35)code='o';elsecode='R';return code;/**/return code;}void main(){float f;char code;printf("\nPlease input the Fahrenheit temperature: ");C= (f - 32) 5 9scanf("%f",&f);code=fun(f);printf("\nTemperature Code is %c\n",code);getch();}第七题:打开程序cprog051.c,完成其中的fun( )函数,使其计算:fun (x )={#include <stdio.h>#include <math.h>double fun(float x){/**/double y;if(fabs(x)>500)y=-1;elsey=sqrt(fabs(x)+6.4)/(2.3+cos(x));return y ;/**/}void main(){float x;double y;printf("Please input a number: \n");scanf("%f",&x);y = fun(x);printf("fun(%0.2f)=%0.2f\n",x,y);getch();}第八题:打开程序cprog031.c ,完成其中的函数fun1(x),实现计算下面的分段函数:-1 |x|+6.42.3+cos(x) |x|>500 |x|<=500fun1(x)= {如 输入: 3.56 输出: fun1(3.56)=1237.05输入: 8 输出: fun1(8.00)=5.50输入: 16.52 输出: fun1(16.52)=0.09#include <stdio.h>#include <math.h>double fun1(float x){/**/double y;if(x<8)y=exp(2*x)+0.6;else if(x==8)y=x-2.5;elsey=(cos(x)+3.8)/(2*x);return y;/**/}void main(){float x;double y;clrscr();printf("Please input a number:\n");scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2lf\n",x,y);getch();}第九题:打开程序Cprog022.c,完成其中的函数substr( ),从字符串str 中截取第m 个位置开始的n 个字符,并返回所截取子字符串的首地址.例如:str 的值为”Information ”,则substr(str,1,4)的值为”Info ”.6.02+x e 5.2-x x x 28.3cos + x=8 x>8 x<8#include <stdio.h>#include <string.h>char *substr(char s[],int m,int n){static char pstr[100];/**/char *ps=s;int i;for(i=1;i<m;i++)ps++;for(i=0;i<n;i++)pstr[i]=*(ps++);/**/return pstr;}void main(){char str[]="InformationTechnology";char *p;p=substr(str,1,4);printf("%s\n",p);getch();}第十题:打开程序cprog052.c,完成其中的fun( )函数,该函数用以判断用二维数组tb表示的矩阵是否为对称矩阵,若是则返回值1,否则返回值0.(注: 二维数组表示的矩阵,若其中的第i行第j列元素值与第j第i元素值相同,则为对称矩阵,否则不是.)#include <stdio.h>#include <math.h>int fun(int x[][4],int n){/**/int i,j,flag=1;for(i=0;i<n;i++)for(j=0;j<4;j++){if(x[i][j]!=x[j][i])flag=0;}if(flag)return 1;elsereturn 0;/**/}void main(){int tb[4][4],i,j;int flag;printf("Input array tb(4*4) :\n");for(i=0; i<4; i++)for(j=0; j<4; j++)scanf("%d",&tb[i][j]);flag = fun(tb,4);if( flag == 1 )printf("Yes\n");elseprintf("No\n");getch();}第十一题:打开程序Cprog042.c ,完成其中的f(double k,int n)函数,该函数根据形参x 、n ,按如下公式计算前n 项并返回计算结果:)1(6554433221),(+⨯+⨯-⨯+⨯-⨯=n n k k k k k k n k f 如:097.2)9,36.5(=f#include <stdio.h>double f(double k,int n){ double t=0;/**/double item=0;int i=1,flag=1;while(i<=n){item=flag*k/(i*(i+1));t=t+item;flag=-1*flag;i++;}/**/return (t);}void main(){ double sum;sum=f(5.36,9);printf("f(5.36,9)= %.3lf\n ",sum);getch();}第十二题:打开程序Cprog021.c ,完成其中的函数fun( ),实现计算数学表达式:300log 6.2sin 106x x x ++ 例如:173.0)69.0(=fun#include <math.h>#include <stdio.h>double fun(double x){/**/double y;y=(sin(x)+pow(x,6))/(2.6+x*log10(300));return y ;/**/}void main(){clrscr();printf("fun(0.69) = %8.3lf\n", fun(0.69)); printf("fun(2.00) = %8.3lf\n", fun(2.00)); printf("fun(4.67) = %8.3lf\n", fun(4.67)); getch();}。
C语言考试题库及答案1. 以下不是C语言的特点的是( C )A、C语言简洁,紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言的移植性好2. 一个C程序是由()BA、一个主程序和若干个子程序组成B、一个或多个函数组成C、若干过程组成D、若干子程序组成3.以下描述正确的是( ) CA、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。
D、do-while循环中,根据情况可以省略while。
4.以下对一维整形数组a的正确说明是( ) DA、int a(10);B、int n=10,a[n];C、int n;D、int a[10];5.以下对二维数组a的正确说明是( ) CA、inta[3][];B、float a(3,4);C、double a[1][4];D、float a(3)(4);6.数组名作为实参传给被调用的函数时,形参获得的是()CA、该数组第一个元素的值B、该数组所有元素的值C、该数组第一个元素的首地址D、该数组所有元素的首地址7. C程序的开始是从()AA、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束8.在C程序中,main()函数的位置()CA、必须作为第一个函数B、必须作为第二个函数C、可以任意D、必须放在它所调用的函数之后9. C编译程序是()CA、C语言的机器语言版本B、一组机器语言指令C、将C源程序编译成目标程序的程序D、是由自己编制的10.以下叙述中错误的是( )CA、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在文件中C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令非执行的语句不转换:例如//和/**/是注释的意思D、C语言源程序经编译后生成后缀为.obj的目标程序1.以下不正确的C语言标识符是( )D字母,数字,下划线组成,但是不能以数字开头A、ABCB、abcC、a_bcD、ab.c12.一个C语言程序是由( ) BA、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下叙述错误的是( ) C算法可以没有输入输入,但是一定不能没有输出A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有个相同的结果14.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i*f值的数据类型为( ) C强制类型转换A、intB、floatC、doubleD、不确定15.以下叙述中错误的是( )CA、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法16.以下叙述中错误的是()CA、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果17.以下选项中关于程序模块化的叙述错误的是()BA、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18. 关于C语言的符号常量,以下叙述中正确的是()CA、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写C、符号常量是指用一个符号名来代表一个常量D、符号常量的符号名必须是常量19.关于C语言的变量,以下叙述中错误的是()BA、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后使用D、由三条下划线构成的符号名是合法的变量名20.以下选项中合法的变量名是()CA、5aB、A%C、_10_D、sizeof21.在C语言中,char型数据在内存中的存储形式是( ) DA、补码B、反码C、源码D、ASCII码22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
c语言编程基础题库及详解答案1. C语言是一种______语言。
A. 编译型B. 解释型C. 标记型D. 脚本型答案:A2. C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B3. 在C语言中,整数类型int的范围是多少?A. -128到127B. -32768到32767C. -2147483648到2147483647D. 以上都不是答案:C4. 下列哪个是C语言中的控制语句?A. ifB. loopC. switchD. All of the above答案:D5. C语言中,以下哪个是正确的数组声明?A. int arr[10];B. int [10] arr;C. Both A and BD. None of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. int myFunction();D. Both A and C答案:D7. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. Both A and BD. None of the above答案:A8. 在C语言中,以下哪个操作符用于计算两个数的乘积?A. *B. /C. %D. +答案:A9. C语言中,以下哪个是正确的循环结构?A. forB. whileC. do-whileD. All of the above答案:D10. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr[];C. Both A and BD. None of the above答案:A11. C语言中,以下哪个是正确的结构体声明?A. struct myStruct { int a; float b; };B. struct { int a; float b; };C. Both A and BD. None of the above答案:C12. 在C语言中,以下哪个是正确的枚举类型声明?A. enum Color { RED, GREEN, BLUE };B. enum { RED, GREEN, BLUE };C. Both A and BD. None of the above答案:C13. C语言中,以下哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. Both A and B答案:B14. 在C语言中,以下哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. min()D. Both A and C答案:B15. C语言中,以下哪个函数用于动态内存分配?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个是正确的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C17. C语言中,以下哪个是正确的位操作符?A. &B. |C. ^D. All of the above答案:D18. 在C语言中,以下哪个是正确的预处理指令?A. #includeB. #defineC. Both A and BD. None of the above答案:C19. C语言中,以下哪个是正确的递归函数调用?A. function();B. function(function());C. function(recursive);D. None of the above答案:B20. 在C语言中,以下哪个是正确的宏定义?A. #define PI 3.14159B. define PI 3.14159C. Both A and BD. None of the above答案:A。
第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。
苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。
某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。
要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。
#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。
#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。
c语言题库及答案详解C语言题库及答案详解C语言,作为一种广泛使用的编程语言,以其高效、灵活和跨平台的特性,在软件开发、系统编程等领域占据着重要地位。
为了帮助学习者更好地掌握C语言,本文将提供一些常见的C语言题目及其详细解答。
1. 基础语法题- 题目:请编写一个C程序,输出"Hello, World!"。
- 答案:以下是一个简单的C程序示例,用于输出"Hello,World!"。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 变量与数据类型题- 题目:声明一个整型变量`a`,初始化为10,并打印其值。
- 答案:在C语言中,可以使用`int`关键字来声明整型变量。
以下是实现题目要求的代码。
```c#include <stdio.h>int main() {int a = 10;printf("The value of a is: %d\n", a);return 0;}```3. 控制结构题- 题目:编写一个程序,判断输入的年份是否为闰年。
- 答案:闰年的判断规则是:如果年份能被4整除但不能被100整除,或者能被400整除,则该年为闰年。
```c#include <stdio.h>int main() {int year;printf("Enter a year: ");scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d is a leap year.\n", year);} else {printf("%d is not a leap year.\n", year);}return 0;}```4. 数组与循环题- 题目:编写一个程序,求一个整数数组中所有元素的和。
C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
c语言考编程试题及答案C语言编程试题及答案1. 请编写一个C语言程序,实现以下功能:输入一个整数n,输出从1到n的所有整数的和。
```c#include <stdio.h>int main() {int n, sum = 0;printf("请输入一个整数: ");scanf("%d", &n);for(int i = 1; i <= n; i++) {sum += i;}printf("从1到%d的和是: %d\n", n, sum);return 0;}```2. 编写一个C语言程序,计算并输出100以内所有偶数的乘积。
```c#include <stdio.h>int main() {int product = 1;for(int i = 2; i < 100; i += 2) {product *= i;}printf("100以内所有偶数的乘积是: %d\n", product); return 0;}```3. 请编写一个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!";printf("原始字符串: %s\n", str);reverseString(str);printf("反转后的字符串: %s\n", str);return 0;}```4. 编写一个C语言程序,实现计算一个数组中所有元素的平均值。
C语言机械1班1.用for循环从1加到100 。
(江松)# include <stdio.h>int main(void){int s=0, i;for(i=1; i<=100; i++){s=s+i;}printf("%d", s);}2.求从1到50的所有能被3整除的数的和。
(江松)# include <stdio.h>int main(void){int i=1,sum=0;while(i<=50){if(i%3==0){sum+=i;}i++;}printf("sum=%d",sum);}3.编写程序,求12+22+32……+n2,直到累加和大于等于10000为止,并输出n和超出10000的值。
(江松)#include<stdio.h>int main(void){int i,sum;i=0;sum=0;while(sum <10000){sum + =i*i;i++;}printf("n=%d sum=%d",i-1,sum);}4.用冒泡排序法对10个整数按照由小到大的顺序进行排序。
(江松)#include<stdio.h>#define N 10void main(){int i,a[N],t=0,j=0;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<N;i++)printf("%5d",a[i]);}5.输入三个整数x,y,z,请把这三个数由小到大输出。
(江松)#include <stdio.h>int main(void){intx,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;}if(x>z){t=z;z=x;x=t;}if(y>z){t=y;y=z;z=t;}printf("small to big: %d %d %d\n",x,y,z);}6.编写程序,输入一个整数,打印出它是奇数还是偶数。
c语言必做100题1. 编写一个C程序,输出“Hello, World!”。
2. 编写一个C程序,计算并输出1到100的和。
3. 编写一个C程序,判断一个数是否为素数。
4. 编写一个C程序,将一个字符串反转。
5. 编写一个C程序,实现二分查找算法。
6. 编写一个C程序,实现插入排序算法。
7. 编写一个C程序,实现选择排序算法。
8. 编写一个C程序,实现冒泡排序算法。
9. 编写一个C程序,实现快速排序算法。
10. 编写一个C程序,实现希尔排序算法。
11. 编写一个C程序,将一个二维数组转置。
12. 编写一个C程序,计算一个数的阶乘。
13. 编写一个C程序,实现斐波那契数列。
14. 编写一个C程序,计算两个数的最大公约数。
15. 编写一个C程序,计算两个数的最小公倍数。
16. 编写一个C程序,计算一个数的平方根。
17. 编写一个C程序,计算一个数的立方根。
18. 编写一个C程序,实现矩阵乘法运算。
19. 编写一个C程序,实现字符串的查找和替换。
20. 编写一个C程序,实现栈的基本操作(入栈、出栈、查看栈顶元素)。
21. 编写一个C程序,实现队列的基本操作(入队、出队、查看队首元素)。
22. 编写一个C程序,实现链表的基本操作(插入、删除、倒置)。
23. 编写一个C程序,实现二叉树的前序、中序和后序遍历。
24. 编写一个C程序,实现图的深度优先搜索算法。
25. 编写一个C程序,实现图的广度优先搜索算法。
26. 编写一个C程序,实现最短路径算法(Dijkstra算法或Floyd算法)。
27. 编写一个C程序,实现最小生成树算法(Prim算法或Kruskal算法)。
28. 编写一个C程序,实现拓扑排序算法。
29. 编写一个C程序,实现优先队列。
30. 编写一个C程序,实现哈希表的基本操作(插入、查找、删除)。
31. 编写一个C程序,实现堆的基本操作(插入、删除、查找最大值)。
32. 编写一个C程序,实现最大堆排序算法。
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言题库(含答案)一、简答题。
( 共14题 ,共0分,每题0分 )1. int i=10, j=10, k=3; k*=i+j; k最后的值是?答:k = 60ok2. 写出程序结果:void Func(char str[100]){printf("%d\n", sizeof(str));}答:4或者8(如果操作系统为32位则为4,64位则为8)是地址吗3. 写出sizeof(struct name2)的结果struct name2{char str;int num;short x;}不会!看结构答:此题考察结构对齐的知识,结果为124. 写出sizeof(struct name1) 的结果struct name1{char str;short x;int num;}不会!答:同样考察的是结构对齐的知识,结果为85. A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)?答:没有问题,static变量只在当前文件中有效,也就是说static 变量的作用域属于所在的文件域。
static变量保存在全局/静态区6. (void *)ptr 和(*(void**))ptr的结果是否相同?答:相同。
首先第一个(void *)ptr将ptr转换为空指针类型(一级指针),(*(void**))ptr相当于先将ptr转换为空类型指针(二级指针)。
二级指针是指向指针的指针,在前面加上*(解指针),也就是空类型指针了(一级指针)。
7. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5);i 是多少?答: i = 5 * 5+5 = 30;看书上的结构理解下意思8. 下面的声明都是什么意思?const int a;int const a;const int *a;int * const a;int const * const a ;答:第一个定义常量a,第二个也是定义常量a,第三个定义常量指针a,第四个定义指针常量a,第五个定义指向常量的指针常量(相当于const引用)。
c语言c语言考试题库及答案一、选择题1. 在C语言中,用于定义变量的关键字是:A. defineB. varC. intD. let答案:C2. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-twoD. variable#答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A5. 以下哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C二、填空题6. 在C语言中,一个基本的程序结构包括____、____和____。
答案:预处理指令;函数定义;语句7. 一个C语言程序的执行从____函数开始。
答案:main8. 在C语言中,使用____关键字可以定义一个函数。
答案:void 或其他数据类型9. 一个C语言数组的元素默认情况下是按照____顺序存储的。
答案:连续10. C语言中的____运算符用于连接字符串。
答案:+三、简答题11. 解释C语言中指针的概念。
答案:指针是一种变量,它存储了另一个变量的内存地址。
通过指针,可以直接操作内存地址中的数据,实现数据的间接引用。
12. 描述C语言中结构体的定义和使用。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体时,使用struct关键字,然后定义结构体的名称和成员。
使用结构体时,可以创建结构体变量,并通过点(.)运算符访问其成员。
四、编程题13. 编写一个C语言程序,计算并输出1到100的整数之和。
(完整word版)C语言考试题库及答案C语言理论上机考试选择题部分(共200题)1、下面程序的输出是___D______#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=13C) k=11,k=013,k=0xb D)k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A) ++t; B) n1=(n2=(n3=0));C) k=i=j;D) a=b+c=1;3、下面合法的C语言字符常量是______A____. A)'\t’ B) "A" C) 65D) A4、表达式: 10!=9的值是________D____。
A)true B)非零值C) 0 D)15、C语言提供的合法的数据类型关键字是_____B____.A) Double B)short C)integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A)反码B) 补码C)EBCDIC码D)ASCII码7、C语言程序的基本单位是_____C______。
A)程序行B)语句C) 函数D)字符8、设int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A)552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是____B__。
#include〈stdio。
h〉void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C)15 D)10(完整word版)C语言考试题库及答案10、下面程序的输出是____B______。
#include<stdio。
C语言编程题覆盖到的算法:1、个人所得税计算;2、求一组数的正、负数(或奇、偶数)的个数和平均值;3、二维数组主、次对角线之和;4、求素数(用函数实现);5、级数有限项求和问题;6、两个一维数组相加(用函数实现);7、求最大、最小值;8、判断闰年(用函数实现);9、求水仙花数;10、百钱百鸡;11、求最大公约数、最小公倍数。
12、求回文数;13、排序;14、二维数组的转置;15、递归函数求阶乘;16、求斐波那契数列;17、求和:a+aa+aaa+aaaa+....;18、求符合条件的整数(如:是某个二位数的平方,个位、十位、百位数各不相同等);(包括素数,回文,完数,等等)19、字符串加密;20、统计字符串中字母和数字的个数;/*1.个人所得税计算,以实验指导P24T5为标准*/#include<stdio.h>void main(){int i,n;double a,b,c;n=i/400;printf("please input income:\n");scanf("%d",&i);a=(i-800)*0.05,b=20+(i-1200)*0.08,c=84+(i-2000)*0.2;switch(n){case 1:printf("不需缴税\n");break;case 2:printf("需交纳%lf元\n",a);break;case 3:case 4:printf("需交纳%lf元\n",b);break;default:printf("需交纳%lf元\n",c);break;}}/*2. 求一组数的奇数个数,偶数个数和平均值#include<stdio.h>#define N 10void main(){int a[N];int i,m=0,n=0,sum=0;double average;printf("please input 10 numbers:\n");for(i=0;i<N;i++){scanf("%d",&a[i]);if(a[i]%2==0)m++;n++;sum+=a[i];}average=(double)sum/N;printf("we have %d odds and %d evens\n",n,m);printf("average=%lf\n",average);}*//*2'.求一组数的正数个数和负数个数与平均值*/ #include<stdio.h>#define N 10void main(){int a[N];int i,m=0,n=0,sum=0;double average;printf("please input 10 numbers:\n");for(i=0;i<N;i++){scanf("%d",&a[i]);if(a[i]>0)m++;elsen++;sum+=a[i];}average=(double)sum/N;printf("we have %d positive numbers and %d nagetive numbers\n",m,n);printf("the average =%lf",average);}/*3.求二维数组的主次对角线之和*/#include<stdio.h>#define M 5#define N 5void main(){int a[M][N];int i,j,sum1=0,sum2=0;printf("please input the matrix:\n");for(i=0;i<M;i++){for(j=0;j<N;j++){scanf("%d",&a[i][j]);}}for(i=0,j=0;i<M;i++,j++){sum1+=a[i][j];}for(i=0,j=N-1;i<M;i++,j--){sum2+=a[i][j];}printf("主对角线和为%d\n",sum1);printf("次对角线和为%d\n",sum2); }/*4.调用函数判断素数*/#include<stdio.h>#include<math.h>int isPrime(int n){int i;for(i=1;i<sqrt(n);i++){if(n%i==0)return 0;}return 1;}{int n,i;printf("please input a number\n");scanf("%d",&n);i=isPrime(n);if(i)printf("%d is a prime\n",n);elseprintf("%d is not a prime\n",n);}//5.级数有限项求和(以格里高利公式求π为例)// #include<stdio.h>#include<math.h>void main(){int n=1;double p=0,t,pi;t=1/(pow((-1),(n+1))*2*(n-1));while(fabs(t)>=1e-6){pi+=t;n++;}printf("%lf",pi);}//6.两个一维数组相加///*#include<stdio.h>#define N 5void main(){int a[N],b[N],c[N];int i;printf("please input the first array a[N]:\n");for(i=0;i<N;i++){scanf("%d",&a[i]);}printf("please input the second array b[N]:\n");for(i=0;i<N;i++){scanf("%d",&b[i]);}for(i=0;i<N;i++){c[i]=a[i]+b[i];printf("the sum is:\n");for(i=0;i<N;i++)printf("%d\t",c[i]);}*///6.1调用函数实现//#include<stdio.h>#define N 5int f(int a,int b){int sum;sum=a+b;return sum;}void main(){int a[N],b[N],c[N];int i;printf("please input the first array a[N]:\n");for(i=0;i<N;i++){scanf("%d",&a[i]);}printf("please input the second array b[N]:\n");for(i=0;i<N;i++)scanf("%d",&b[i]);}for(i=0;i<N;i++){c[i]=f(a[i],b[i]);}printf("the sum is:\n");for(i=0;i<N;i++)printf("%d\t",c[i]);}/*7.求一组数的最大最小值*//*#include<stdio.h>void main(){int i,max,min;int a[10];printf("please input ten numbers\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=a[0];min=a[0];for(i=1;i<10;i++){if(a[i]>max){max=a[i];}if(a[i]<min){min=a[i];}}printf("max is %d,min is %d\n",max,min); }*//*随机数*/#include<stdio.h>#include<stdlib.h>void main(){int i,max,min;int a[10];for (i=0;i<10;i++){a[i]=rand()%90+10;printf("%d\t",a[i]);}max=a[0];min=a[0];for(i=1;i<10;i++){if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];}printf("max=%d\tmin=%d\n",max,min); }/*8.判断闰年*/#include<stdio.h>int f(int n){if(n%4==0&&n%100!=0||n%400==0)return 1;elsereturn 0;}void main(){int n;printf("please input year:\n");scanf("%d",&n);if(f(n))printf("%d是闰年\n",n);elseprintf("%d不是闰年\n",n);}/*可能会有要输出某一围所有闰年,思想一样,用循环调用函数即可*//*9.判断水仙花数(运用循环)#include<stdio.h>void main(){int n,a,b,c,m;printf("please input a number:\n");scanf("%d",&n);a=n/100;b=n/10%10;c=n%10;m=a*a*a+b*b*b+c*c*c;if(m==n)printf("%d is the number we want\n",n);elseprintf("%d is not the number\n",n);}*//*9'.输出所有水仙花数(调用函数(书P108为循环做法))*/ #include<stdio.h>int f(int n){int a,b,c,m;a=n/100;b=n/10%10;c=n%10;m=a*a*a+b*b*b+c*c*c;if(m==n)return 1;elsereturn 0;}void main(){int i,t;for(i=100;i<1000;i++){t=f(i);if(t==1)printf("%d\t",i);}}//10.百钱买百鸡(题目见书P115)//#include<stdio.h>void main(){int i,j,k;for(i=0;i<=20;i++){for(j=0;j<=33;j++){for(k=3;k<=99;k+=3){if((i+j+k==100)&&(5*i+3*j+k/3==100))printf("公鸡%d只,母鸡%d只,小鸡%d只\n",i,j,k);}}}}/*11.求最大公约数和最小公倍数,函数实现*/#include<stdio.h>int f(int m,int n){int i=1,t;if(m<n){t=m;m=n;n=t;}while((i=m%n)!=0){m=n;n=i;}return n;}int g(int m,int n){int i,j;i=f(m,n);j=m*n/i;return j;}void main(){int m,n,a,b;printf("please input two numbers:\n");scanf("%d %d",&m,&n);a=f(m,n);b=g(m,n);printf("最大公约数为%d\n",a);printf("最小公倍数为%d\n",b);}//12.1输出10-2000之间的回文数(循环)// /*#include<stdio.h>void main(){int i,j,k=0,a;printf("10-2000之间的回文数有:\n");for(i=10;i<=2000;i++){a=i;j=0;while(a>0){j=j*10+a%10;a/=10;}if(i==j){printf("%d\t",i);k++;if(k%5==0)printf("\n");}}printf("\n");}*///12.2输出10-2000之间的回文数(函数调用)// /*#include<stdio.h>int f(int n){int i=0;while(n>0){i=i*10+n%10;n/=10;}return i;}void main(){int n,k;printf("10-2000之间的回文数有:\n");for(n=10;n<=2000;n++){if(n==f(n)){printf("%d\t",n);k++;if(k%5==0)printf("\n");}}printf("\n");}*///12.3判断回文数(循环)///*#include<stdio.h>void main(){int i,a,j=0;printf("please input a number:\n");scanf("%d",&i);a=i;while(a>0){j=j*10+a%10;a/=10;}if(j==i)printf("%d是回文数\n",i);elseprintf("%d不是回文数\n",i); }*///12.4判断回文数(函数调用)// #include<stdio.h>int f(int n){int i=0;while(n>0){i=i*10+n%10;n/=10;}return i;}void main(){int n;printf("please inpit a number:\n");scanf("%d",&n);if(n==f(n))printf("%d是回文数\n",n);elseprintf("%d不是回文数\n",n); }//13.排序////选择法///*#include<stdio.h>#define N 10void f(int a[],int n){int i,j,k,t;for(i=0;i<=n;i++){k=i;for(j=i+1;j<n;j++){if(a[j]<a[k])k=j;}if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}}void main(){int a[N]={8,2,34,5,12,78,4,78,76,9};int i=0;int size=sizeof(a)/sizeof(int);for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");f(a,size);for(i=0;i<N;i++){printf("%4d",a[i]);}printf ("\n");}//冒泡法//#include<stdio.h>#define N 5void f(int a[],int n){int i,j;int t;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}*///插入法//#include<stdio.h>#define N 5void f(int a[],int n){int i,j;int t;for(i=0;i<n;i++){t=a[i];j=i;while(j>0&&a[j-1]>t){a[j]=a[j-1];--j;}a[j]=t;}}void main(){int a[N]={8,2,34,5,12};int i=0;int size=sizeof(a)/sizeof(int);for(i=0;i<N;i++){printf("%4d",a[i]);}printf("\n");f(a,size);for(i=0;i<N;i++){printf("%4d",a[i]);}printf ("\n");}//二维数组的转置//#include<stdio.h>#define N 3#define M 3void main(){int a[M][N],b[M][N];int i,j;printf("please input a[M][N]\n");for(i=0;i<M;i++){for(j=0;j<N;j++){scanf("%d",&a[i][j]);}}for(i=0;i<M;i++){for(j=0;j<N;j++){b[i][j]=a[j][i];}}printf("b[M][N]=\n");for(i=0;i<M;i++){for(j=0;j<N;j++){printf("%4d",b[i][j]);}printf("\n");}printf("\n");}//15.调用递归函数求阶乘//#include<stdio.h>int f(int n){if(n==1||n==0)return 1;elsereturn f(n-1)*n;}void main(){int n,m;printf("please input a number:\n");scanf("%d",&n);m=f(n);printf("%d!=%d\n",n,m);}/*16.运用递归函数求斐波拉契数列(前30项)*/ #include<stdio.h>int f(int n){if (n==1||n==2)return 1;elsereturn f(n-1)+f(n-2);}void main(){int i,k=0;for (i=1;i<=30;i++){printf("%d\t",f(i));k++;if(k%5==0)printf("\n");}printf("\n");}//17.求a+aa+aaa+aaaa...///*#include<stdio.h>#include<math.h>#define N 5void main(){int n,i,j,k,a,sum1=0;printf("please input a number:\n");scanf("%d",&n);for(i=1;i<=N;i++){k=fabs(10,i-1);j=n+n*(i-1)*k;sum1+=j;}printf("sum=%d\n",sum1);}*/#include<stdio.h>#define N 5int k(int a,int sum){sum=sum*10+a;return sum;}void main(){int a,i=0,j,sum=0;printf("please input a number:\n");scanf("%d",&a);sum=k(a,k(a,sum));printf("sum=%d\n",sum);}//18.求符合条件的整数(如是某个二位数的平方,个位、十位、百位数各不相同等)// #include<stdio.h>void main(){int a,b,c,n,m;for(m=10;m<100;m++){n=m*m;a=n%10;b=n/10%10;c=n/100;if(a!=b&&b!=c&&c!=a)printf("%d\t",m);}printf("\n");}//19.字符串加密//#include<stdio.h>#include<string.h>#define N 80void main(){char str[N];char *p;printf("please input the code:\n");gets(str);p=str;while(*p!='\0'){*p+=2;p++;}printf("%s\n",str);}//20.统计字符串中字母和数字的个数//#include<stdio.h>#include<string.h>#include<ctype.h>#define N 100void main(){char str[N];int i=0;int a=0,b=0;printf("please input a string:\n");gets(str);while(str[i]!='\0'&&str[i]!='\n'){if(isdigit(str[i]))a++;else if(isalpha(str[i]))b++;i++;}printf("there are %d letters and %d numbers\n",b,a); }。