C语言操作题常考编程题库完整

合集下载

c语言编程题库100题,

c语言编程题库100题,

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的语句就是()。

(完整word)C语言考试试题.

(完整word)C语言考试试题.
A.int max(x,y);B.static char c;C.#define PI 3。141592D.#define S 345
24.C语言中要求对变量作强制定义的主要理由是(B)
A.便于编辑预处理程序的处理B。便于确定类型和分配空间
C.便于移植D.便于写文件
25。以下数据中,不正确的数值或字符常量是(A)
25.若有定义:char s[]= ”turboC ";则Turbo C系统为数组s开辟【7】个字节的内存单元
二、判断共10题(共计20分)
1.inti,*p=&i;是正确的C说明(√)
2。若有说明intc;则while(c=getchar());是正确的C语句(√)
3。共同体变量所占的内存长度等于最长的成员长度(√)
23.当a=5,b=7,c=8时,执行以下程序段后c=【5】
if(a〈c) b=a;
a=c;
c=b;
24.已知a=5,写出表达式(0<a)‖(a〈2)的值是【1】
25。在TC2。0中,有以下结构类型说明和变量定义,则变量a在内存所占字节数是【22】
Strut stud
{char num[6];
int s [4];
4.charc[]=”Very Good”;是一个合法的为字符串数组赋值的语句(√)
5.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量(√)
6。整数—32100可以赋值给int型和longint型变量(√)
7.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准(√)
for(i=0;i〈=2;i++)printf(“YES");printf(“\n”);

c语言编程题库100题

c语言编程题库100题

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语言考试编程题题库

(完整版)计算机二级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语言题库(带详解答案)

(完整版)C语言题库(带详解答案)

(完整版)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题(答案版)

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语言考试编程题

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语言考试题库及答案

C语言考试题库及答案

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的值是( ) 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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); }。

相关文档
最新文档