C语言编程练习试题绝对经典

合集下载

c语言必练试题及答案

c语言必练试题及答案

c语言必练试题及答案1. 题目:编写一个C语言程序,计算并输出100以内所有正整数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {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语言程序,计算并输出一个整数数组中所有元素的平均值。

答案:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < 5; i++) {sum += arr[i];}float average = (float)sum / 5;printf("数组元素的平均值为:%.2f\n", average);return 0;}```4. 题目:编写一个C语言程序,实现一个函数,用于计算一个整数的阶乘。

北京理工大学网络教室C语言编程题库及答案(绝对经典)

北京理工大学网络教室C语言编程题库及答案(绝对经典)

1.Hello world.输入:无输出:Hello world.程序:#include<stdio.h>int main(){printf("Hello world.\n");return 0;}2.Welcome to Beijing.程序:#include <stdio.h>int main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");return 0;}3. 求A+B输入:整数1 整数2输出:整数1+整数2=和程序:#include<stdio.h>int main(){int a,b;scanf("%d",&a);scanf("%d",&b);printf("%d+%d=%d\n",a,b,a+b);return 0;}4. 求 x 的 3次方输入:一个整数。

输出:该整数的 3 次方值。

程序:#include<stdio.h>int main(){int x;scanf("%d",&x);printf("%d\n",x*x*x);return 0;}5. 学习打印你的第一个图形编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。

程序:#include<stdio.h>int main(){printf(" *\n");printf(" ***\n");printf(" *****\n");printf("*******\n");return 0;}6. 一年级的算术题输入:接受两个整数,每个整数之间使用空格分隔。

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语言编程题经典40题(附解答)

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语言200道练习试题和答案

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语言经典题目100题

c语言经典题目100题

1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。

c语言编程题库100题

c语言编程题库100题

c语言编程题库100题C语言是一门广泛应用于计算机领域的高级编程语言。

对于学习者来说,掌握C语言编程是一项必修课程。

为此,我们为大家整理了100道C语言编程题,供大家练练手,锻炼编程能力。

以下是题目列表:##### 基础篇1、编写一个C程序,输出“Hello, World!”。

2、编写一个C程序,输入两个数,求和并输出结果。

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程序,输入一个字符串,统计字符串中的单词个数并输出结果。

100条经典C语言笔试题目(全)

100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool , float, 指针变量与“零值”比较的if 语句。

提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。

例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。

(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C程序,请计算sizeof 的值。

char str[] = “Hello” ; char *p = str ; int n = 10;请计算(1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) { ……;}请计算sizeof( str ) =(5)void *p = malloc( 100 ); 请计算sizeof ( p ) =【标准答案】(4)4、(5)43、long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。

4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是int2 + DATE10 + double8 = 20 6、请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。

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

➢ 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?解方程组编写程序,采用穷举法求出结果。

➢ 编写程序,根据以下公式求e 的值。

要求用两种方法计算:1) for 循环,计算前50项2)while 循环,直至最后一项的值小于10-4➢ 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。

➢ 猴子吃桃子问题。

猴子第一天摘下若干个桃,当即只一半,又多吃一个。

第二天早上又将剩下的一半吃掉一半,双多吃一个。

以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃。

问第一天摘了几个桃。

➢ 编程打印九九乘法表➢ 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。

➢ 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入0123.456,返回值为整数有效位数为3)1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。

2) 使用数组来进行编程。

➢ 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。

(大进制向小进制的转换。

(方法是相除去余)10进制327转八进制:327/8 = 40 余数为740/8 = 5 余数为0于是八进制数为507(第一位5是最后的商))➢ 使用数组,编写一个任意进制正整数转换为十进制的转换工具。

(以2,10进制互转为例,其他请举一反三:二进制数1101转十进制:1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13)➢ 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20。

然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

11111111!2!3!4!5!!e n ≈++++++⋅⋅⋅⋅⋅⋅+➢编写一个函数,用以求x2-5x+4的值,x做为函数的形参,调用此函数,求:y1= 22-5×2+4Y2=(x+15)2-5(x+15)+4Y3=(sinx)2-5sinx+4sinx 可以加载”math.h”库函数后使用,函数说明为double sin( double x)➢编写一个函数,使给定的一个二维数组(N×N)行列互换(N>3)。

➢从键盘中输入一个不超过40个字符的字符串,再输入一个位数,删除对应位数的字符,然后输出删除指定字符后的字符串要求:1) 用puts输出指示信息2) 用gets接收字符串➢如果有一个正整数从左、右来读都是一样的,则称为回文式数(简称回数);比如101,32123,999都是回数。

数学中有名的“回数猜想”之迷,至今未解决。

回数猜想:任取一个数,再把它倒过来,并把这两个数相加,然后把这个和数再倒过来,与原和数相加,重复此过程,一定能获得一个回数。

例:68 倒过来是8668+86= 154154+541= 605605+506=1111 (回数)编程,输入任意整数,按上述方法产生一个回数,为简便起见,最多计算7步,看是否能得到一个回数。

要求:主函数中接收键盘数据,必须用scanf(“%ld”,&变量名)接收整型变量,显示该数与其倒数的和,输出每一步计算步骤。

子函数1,计算该数的倒数。

子函数2,验证和是否为回数,是则主函数打印“经过n次计算,得到回数”,超过7次未能得到回数,显示,“经过n次计算,未得到回数”➢求Sn=a+aa+aaa+------+aaaaaaa(n个a),其中a和n都从键盘中输入,如从键盘中输入2,5,则计算S5=2+22+222+2222+22222。

#include "stdio.h"void main(){int a,n,i=1;long s=0,t=0;printf("a=");scanf("%d",&a);printf("n=");scanf("%d",&n);while(i<=n){t=t+a;s=s+t;a=a*10;++i;}printf("sum=%d",s);}➢两个乒乓球队进行比赛,各出三人。

甲队为A,B,C三人,乙队为X,Y,Z三人。

已抽签决定比赛,有人向队员打听比赛的,A说他不和X比,C说他不和X、Z比,编程找出三对选手的对手。

注:使用穷举法#include"stdio.h"int main(){ int i,j,k;for(i=1;i<=3;++i){ for(j=1;j<=3;++j){ for(k=1;k<=3;++k){ if(i==j || j==k || i==k) continue;if (i!=1 && k!=1 && k!=3){ printf("A vs %c\n",i+'X'-1);printf("B vs %c\n",j+'X'-1);printf("C vs %c\n",k+'X'-1);return 0;}}}}return 0;}➢编写一个函数,函数说明为:char lastchar ( char str[])功能:求一个字符串的最后一个字符,如果是空串,则返回空字符。

再利用该函数编程,输入两个字符串,输出第一字符串的最后一个字符和第二个字符串的最后一个字符。

➢信点兵。

信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。

编程求信至少有多少兵?#include "stdio.h"void main(){int i;for(i=1;;i++){if(i%5==1&&i%6==5&&i%7==4&&i%11==10){printf("%d",i);break;}}}➢用递归方法计算下列函数的值:fx (x, n)=x-x2+x3-x4+......(-1)n-1xn n>0要求:1) 写出递归函数的原型2) 编写程序➢ 4 用递归法将一个整数转换成字符形式输出。

例如输入483,应输出字符串“483”。

其程序如下,请验证,并修改程序,增加显示出输入数字的位数的功能,并使输出结果与下图一致。

void convert(long n){ long i;if ((i=n/10)!=0)convert(i);putchar(n%10+'0');}main(){ long number;scanf("%ld",&number);if ( number<0){putchar('-'); number= -number;}convert (number);}➢利用以下公式,编程计算π的值,直到最后一项的绝对值( 用函数fabs() )小于0.0001为止。

【程序1】题目:有1、2、3、41.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:#include "stdio.h"#include "conio.h"main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}getch();}===========================================【程序2】题目:企业发放的奖金根据利润提成。

利润(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.程序源代码:#include "stdio.h"#include "conio.h"main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0. 1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}===========================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

相关文档
最新文档