计算机系C语言编程50题(含答案)汇编
计算机程序设计基础(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语言编程题经典40题(附解答)

字符串在C语言中通常表示为字符数组。可以通过字符数组来存储和操作字符串。字符串的常用函数 包括strcpy()、strcat()、strlen()等。
03
进阶题目
函数与递归
总结词
理解函数定义、参数传递、递归调用等概念,掌握函数的使用方法。
题目1
编写一个函数,判断一个整数是否为素数。
题目2
编写一个函数,计算斐波那契数列的第n项。
培养逻辑思维
C语言强调结构化和严谨 的编程风格,学习C语言 有助于培养逻辑思维和问 题解决能力。
为什么选择这40道题目
经典题目
精选的40道题目均来自经典的C语言题目库,具有较高的代表性和难 度。
覆盖面广
题目涵盖了C语言的主要知识点,包括数据类型、控制结构、函数、 指针等,有助于全面提升编程能力。
难度适中
实现二叉树的基本操作(创建、插 入、删除、遍历)
题目12
实现堆排序算法
04
THANKS
感谢观看
01
02
文件打开
使用fopen()函数打开文件,并返回一 个FILE类型的指针。
03
文件读取
使用fscanf()、fgets()等函数从文件中 读取数据。
文件关闭
使用fclose()函数关闭文件。
05
04
文件写入
使用fprintf()、fputs()等函数将数据写 入文件。
动态内存分配
总结词
动态内存分配允许程序员在运行时根 据需要分配或释放内存,提高了程序 的灵活性和可扩展性。
数组与字符串
01
理解数组的概念和使用方法
02
掌握字符串的存储和操作
03
熟悉数组和字符串的常用函数
(完整版)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语言编程题(带答案)

2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
3、计算并输出200-400之间不能被3整除的整数的和。
4、从键盘输入10个数,统计非负数的个数,并计算非负数的和
5、求100之内自然数中偶数之编写求和的函数。
11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j
12、计算并输出1-200之间不能被5整除的整数的和。
13、从键盘输入n和a的值,计算a+aa+aaa+……+aa……a(n个a)的值。
14、输入5个数,求它们中最大值和平均值并输出。
printf("%d ",b[i]);
printf("\n");
}
10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
#include
void main()
{ int i,j,sum=0;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
if(a*100+b*10+c+c*100+b*10+a==1333)
printf("%d,%d,%d\n",a,b,c);
}
}
}
3、计算并输出200-400之间不能被3整除的整数的和。
#include
void main()
{ int i,sum=0;
for(i=200;i<=400;i++)
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语言编程题(附答案)

C语言关键字速记(必考):enum char case const unsigned do default double else extern float for goto if int long register short signed struct switch typedef union void volatile while break return continue autoC语言的最小单位是函数。
C语言的结构有:顺序结构、循环结构和分支结构。
全国计算机等级考试c语言大题改错题(每小题10分,2小题/套)第1套1.程序Cmody021.c输出如下所示图形:*************************2.程序Cmody022.c的功能是求解百元买百鸡问题:设一只公鸡2元、一只母鸡1元、一只小鸡0.5元。
问一百元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少种分配方案?-------------------------Cmody021.c-------------------#include<stdio.h>void main(){/**/int i;j;/**/for(i=1;i<=5;i++){for(j=1;j<=5-i;j++)printf(" ");/**/ for(j=1;j<=5;j++)/**/printf("*");printf("\n");}}-------------------------Cmody022.c------------------- #include<stdio.h>#include<conio.h>/**/int fun();/**/{int hen,cock,chicken,n=0;clrscr();for(cock=0;cock<=50;cock+=1)for(hen=0;hen<=100;hen=hen+1){chicken=2*(100-hen-2*cock);/**/if(cock+hen+chicken=100)/**/{n++;printf("%d-->hen:%d,cock:%d,chicken:%d\n",n,hen,cock,chi cken);if(n==20)getch();}}return n;}void main(){int num;num=fun();printf("\nThere are %d solutions.\n",num);getch();}第2套1.程序Cmody031.c的功能是:从键盘上输入两个整数,及一个运算符(+、-、*、/或%),进行相应的运算后输出运算的结果。
C语言经典编程100题(答案版)

C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、输入1~10之间的一个数字,输出它对应的英文单词。
#include"stdio.h"main(){int x;printf("please input x(1-10):\n");scanf("%d",&x);switch(x){case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;case 4:printf("four");break;case 5:printf("five");break;case 6:printf("six");break;case 7:printf("server");break;case 8:printf("eight");break;case 9:printf("nine");break;case 10:printf("ten");break;}}2、用自然语言描述程序逻辑如下,试写程序。
①设置环境;②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③i=1;④如果i≤100,则转⑤,否则转⑧;⑤令s=0,求前i个自然数之和,并放于变量s之中;⑥sum=sum+s;⑦i增加1,转④;⑧输出和sum,结束。
#include"stdio.h"main(){int i,j,s;long sum=0;for(i=1;i<=100;i++){s=0;for(j=1;j<=i;j++){s=s+j;}sum=sum+s;}printf("sum=%d",sum);}3、用自然语言描述的程序逻辑为:(假设正确口令为123456)①设置环境;②定义变量i、flag和password,并令flag=0,i=0;③用户回答口令,将其赋于password变量;④口令正确?如果是,则flag=1,转⑥。
否则转⑤;⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥;⑥根据flag之值输出相应信息。
#include"stdio.h"main(){long i=0,flag=0,password;printf("please input password:\n");scanf("%ld",&password);do{if(password==123456)flag=1;i++;}while(i<3);if(flag==1)printf("口令正确!");elseprintf("口令不正确!");}4、用自然语言描述的程序逻辑如下:①设置环境;②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数;③输入原始正整数x;④从x中分解出个位数字digit;⑤合并个位digit至逆数y中;⑥原始数x缩小10倍:x=x/10;⑦如果x非零,则转④;⑧输出逆数y,结束#include"stdio.h"main(){int digit,x,y=0;printf("please input x:\n");scanf("%d",&x);do{digit=x%10;y=y*10+digit;x=x/10;} while(x);printf("%d",y);}5、输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。
#include"stdio.h"main(){float a,b,c;printf("please input a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b){if(a==b&&a==c&&b==c){printf("等边三角形!");}else{if(a==b||a==c||b==c){printf("等腰三角形!");}else{printf("任意三角形!");}}}else{printf("不能构成三角形!");}}6、输入10个数,分别统计其中正数、负数、零的个数。
#include"stdio.h"#define N 10main(){int i,zsum=0,fsum=0,lsum=0;float x;for(i=1;i<=N;i++){printf("请输入第%d个数:",i);scanf("%f",&x);if(x>0)zsum++;else if(x==0)lsum++;elsefsum++;}printf("有%d个正数,%d个负数,%d个零",zsum,fsum,lsum);}7、先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。
(设N为100)#include"stdio.h"#include"stdlib.h"#include"time.h"#define N 100main(){int i,x;randomize();for(i=1;i<=N;i++){x=random(900)+100;printf("%d\t",x);if(x%3==0&&x%5==0&&x%7==0)printf("\n*%d*\n",x);}}8、已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=0,x=a||x=-a; y=sqrt(a*a-x*x), -a<x<a; y=x, x<-a||x>a.#include"stdio.h"#include"math.h"main(){float x,y,a;printf("从键盘输入a,x:\n");scanf("%f,%f",&a,&x);if(x==a||x==-a){y=0;}else if(x>-a&&x<a){y=sqrt(a*a-x*x);}else{y=x;}printf("y=%f",y);}9、计算:1/2-2/3+3/4-4/5……,前100项。
#include"stdio.h"main(){int i,t=1;float sum=0;for(i=1;i<=100;i++){sum=sum+(t*i*1.0)/(i+1);t=-t;}printf("%f",sum);}10、从终端输入3个数a、b、c,按从大到小的顺序输出。
#include"stdio.h"#define N 3main(){int x[N],i,j,temp;for(i=0;i<N;i++){printf("please input di %d ge shu:",i+1);scanf("%d",&x[i]);}for(i=0;i<N-1;i++){for(j=i+1;j<N;j++){if(x[j]>x[i]){temp=x[i];x[i]=x[j];x[j]=temp;}}}for(i=0;i<N;i++){printf("%d\t",x[i]);}}11、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
#include"stdio.h"#include"math.h"main(){int i,gw,sw,bw;for(i=100;i<=999;i++){gw=i%10;sw=i/10%10;bw=i/100%10;if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))printf("%d\n",i);}}12、求下列式子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
#include"stdio.h"main(){int i,t=1;float sum=0;for(i=1;i<=100;i++){sum=sum+(1.0*t)/(i+1);t=-t;}printf("sum=%f",sum);}13、编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。
#include"stdio.h"main(){int a,b;printf("please input a,b:\n");scanf("%d,%d",&a,&b);if(a>100&&b>100){printf("%d,%d",a/100,b/100);}else{printf("%d",a+b);}}14、输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:90~100:A级;80~89:B级;70~79:C级;60~69:D级;0~59:E级;#include"stdio.h"main(){int chengji;printf("please input chengji:\n");scanf("%d",&chengji);if(chengji>=90&&chengji<=100)printf("A");else if(chengji>=80)printf("B");else if(chengji>=70)printf("C");else if(chengji>=60)printf("D");elseprintf("E");}15、把100~200之间的不能被3整除的数输出。