C典型题目

合集下载

C语言练习题(带标准答案)-绝对经典题目不看后悔

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语言经典程序100题(完整版)

C语言经典程序100题(完整版)

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

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

#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,求应发放奖金总数?程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

#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又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

c语言面试题目100及最佳答案精选全文

c语言面试题目100及最佳答案精选全文

精选全文完整版(可编辑修改)c语言面试题目及最佳答案1、描述⼀下gcc的编译过程?gcc编译过程分为4个阶段:预处理、编译、汇编、链接。

预处理:头⼀件包含、宏替换、条件编译、删除注释编译:主要进⼀词法、语法、语义分析等,检查⼀误后将预处理好的⼀件编译成汇编⼀件。

汇编:将汇编⼀件转换成⼀进制⼀标⼀件链接:将项⼀中的各个⼀进制⼀件+所需的库+启动代码链接成可执⼀⼀件2、内存的最⼀存储单位以及内存的最⼀计量单位分别是?内存的最⼀存储单位为⼀进制位,内存的最⼀计量单位字节3、#include<> 与#include ""的区别?include<>到系统指定⼀录寻找头⼀件,#include ""先到项⼀所在⼀录寻找头⼀件,如果没有找再到系统指定的⼀录下寻找4、描述⼀下变量的命名规则变量名有字⼀、数值、下划线组成,但不能以数值开头5、变量的声明与定义有啥区别?声明变量不需要建⼀存储空间,变量的定义需要建⼀存储空间6、谈谈c语⼀中有符号和⼀符号的区别?有符号:数据的最⼀位为符号位,0表示正数,1表示负数⼀符号:数据的最⼀位不是符号位,⼀是数据的⼀部分7、谈谈计算机中补码的意义统⼀了零的编码将符号位与其他位统⼀处理将减法运算转换成加法运算8、谈谈数组的特点同⼀个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的9、数组的分类数组的分类主要是:静态数组、动态数组两类。

静态数组:类似int arr[5];在程序运⼀就确定了数组的⼀⼀,运⼀过程不能更改数组的⼀⼀。

动态数组:主要是在堆区申请的空间,数组的⼀⼀是在程序运⼀过程中确定,可以更改数组的⼀⼀。

10、描述⼀下⼀维数组的不初始化、部分初始化、完全初始化的不同点不初始化:如果是局部数组数组元素的内容随机如果是全局数组,数组的元素内容为0 部分初始化:未被初始化的部分⼀动补0完全初始化:如果⼀个数组全部初始化可以省略元素的个数数组的⼀⼀由初始化的个数确定11、谈谈数组名作为类型、作为地址、对数组名取地址的区别?数组名作为类型:代表的是整个数组的⼀⼀数组名作为地址:代表的是数组⼀元素的地址对数组名取地址:代表的是数组的⼀地址12、谈谈你对⼀维数组在物理上以及逻辑上的数组维度理解⼀维数组在逻辑上是⼀维的,在物理上是⼀维的13、描述⼀下函数的定义与函数的声明的区别函数定义:是指对函数功能的确⼀,包括指定函数名、函数类型、形参及其类型、函数体等,它是⼀个完整的、独⼀的函数单位。

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语言超级经典400道题目

C语言超级经典400道题目

C语言超级经典400道题目1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。

A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。

A、该数组的长度。

B、该数组的元素个数。

C、该数组中各元素的值。

D、该数组的首地址。

、D、110、C语言中数组下标的下限是________。

A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。

40个C语言的基础编程题

40个C语言的基础编程题

C语言基础编程题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....2.程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf("%12ld %12ld",f1,f2);if(i%2==0) printf("\n");/*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/ }}========================================【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

2.程序源代码:#include "math.h"main(){int m,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){ k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap) {printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThe total is %d",h);} ========================================【程序3】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

C语言经典题目

C语言经典题目

1.有函数F(x)=(x+1)2和G(x)=2x+1,输入X值计算F(G(x))的值。

2.任意输入三个字符,要求首先按逆序输出,然后同行原序输出。

3.在屏幕上输出如下图案(考虑能否将输出的行数由输入的值来控制):************************4.在屏幕上输出如下图案(考虑将输出的行数由输入的值来控制):***************5.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************6.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):**********7.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************8.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*************************9.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):****************10.编程输出如下格式图形(考虑将输出的行数由输入的值来控制):*************************11.编写打印如下图形的程序(考虑将输出的行数由输入的值来控制):* * * * ** * * * ** * * * ** * * * *12.编制程序打印如下图形(考虑将输出的行数由输入的值来控制):ABBBCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGGGG13.编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 114.编程打印图形(考虑将输出的行数由输入的值来控制):11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 115.编程打印图形(考虑将输出的行数由输入的值来控制):1 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 1116.编程打印图形(考虑将输出的行数由输入的值来控制):11 11 2 11 3 3 11 4 6 4 11 5 10 10 1 117.编程打印图形(考虑将输出的行数由输入的值来控制):11 11 2 11 3 3 11 4 6 4 11 5 10 10 1 118.输入一个大写字母打印菱形。

C语言经典案例题

C语言经典案例题

1、题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>int main(){for (int i = 1; i < 5; i++)for (int j = 1; j < 5; j++)for (int k = 1; k < 5; k++)if (i != j&&i != k&&j != k)printf("%d%d%d\n", i, j, k);return 0;}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,求应发放奖金总数?#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){float lirun;printf("请输入当月利润:\n");scanf("%f", &lirun);if (lirun <= 100000)printf("应发放金额总数:%f\n", lirun*0.1);else if (lirun <= 200000 && lirun > 100000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075);}else if (lirun <= 400000 && lirun > 200000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005);}else if (lirun <= 600000 && lirun >400000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005+(lirun-400000)*0.03);}else if (lirun <= 1000000 && lirun >600000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005 +(lirun - 400000)*0.03+(lirun-600000)*0.015);}else if(lirun >1000000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005 +(lirun - 400000)*0.03 + (lirun - 600000)*0.015+(lirun-1000000)*0.01);}else{printf("利润为负,没有奖金!!!\n");}return 0;}3、题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>int main(){int i=0;//判断开方后的数强制转化为整型与不强制转化为整型的数是否相等while (!((int)sqrt(i+100)==sqrt(i+100)&&(int)sqrt(i+100+168)==sqrt(i+100+168))) {i++;}printf("%d\n", i);return 0;}void main(){long int i, x, y, z;for (i = 1; i<100000; i++){x = sqrt(i + 100); /*x为加上100后开方后的结果*/y = sqrt(i + 268); /*y为再加上168后开方后的结果*/if (x*x == i + 100 && y*y == i + 268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf("\n%ld\n", i);}getchar();}4、题目:输入某年某月某日,判断这一天是这一年的第几天?#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int year, month, day;printf("请输入年份:\n");scanf("%d", &year);printf("请输入月份:\n");scanf("%d", &month);printf("请输入日:\n");scanf("%d", &day);int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };days[1] = (year % 4 == 0) ? 29 : 28;int sum = 0;for (int i = 0; i < month-1; i++)sum += days[i];sum += day;printf("%d年%d月%d日是第%d天\n", year, month, day, sum);return 0;}5、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?6、题目:判断101-200之间有多少个素数,并输出所有素数。

c语言经典题目

c语言经典题目

一,闰年问题#include<stdio.h>void main(){int a;printf("please input the data of years:");scanf("%d",&a);if(a%400==0||(a%4==0&&a%100!=0))printf("\n闰年:%d",a);}二,数字整除问题#include<stdio.h>void main(){int a=1,i=0;printf("能被7整除的数:\n");while(a<=100){if(a%7==0){printf("%4d",a);i++;if(i%5==0)printf("\n");}a++;}}三,五层递加三角#include<stdio.h>void main(){int a,b,n=1;while(n<=5){a=1,b=1;while(a<=5-n){printf(" ");a++;}while(b<=2*n-1){printf("*");b++;}printf("\n");n++;}}四,水仙花数#include<stdio.h>void main(){int a,m,n,q,p=1;a=100;while(a<1000){m=a/100;n=a/10-m*10;q=a-m*100-n*10;if(a==m*m*m+n*n*n+q*q*q){printf("%5d",a);if(p%2==0)printf("\n");p++;}a++;}}五,最小公倍数#include<stdio.h>int gy(int x,int y){int r;if(x<y){r=x;x=y;y=r;}r=x%y;while(r!=0){x=y;y=r;r=x%y;}return (y);}int gb(int m,int n){int p;p=m*n/gy(m,n);return (p);}void main(){int a,b,c;printf("please enter the data you want to handle:");scanf("%d,%d",&a,&b);c=gb(a,b);printf("%d",c);}六,1+1/3+1/5.....#include<stdio.h>void main(){int n,i;float sum=0.0;scanf("%d",&n);i=1;while(i<=n){sum +=___1.0/(2*i-1);i++;}printf("%.3f",sum);}七,1+1/(1+2)+1/(1+2+3).....#include<stdio.h>void main(){int a,b,c=0;float d=0.0;a=1;scanf("%d",&b);while(a<=b){c+=a;a++;d+=1.0/c;}printf("%d\n",c);printf("%.3f",d);}八,1/(1*2*3*4....*b)#include<stdio.h>void main(){int a,b,c=1;float d;scanf("%d",&b);a=1;while(a<=b){c*=a;a++;d=1.0/c;}printf("%d\n",c);printf("%.3f\n",d);}九,从大到小排列数组,求和,取极差#include<stdio.h>void main(){int a[10],m=0,i,j,t,c;float d=0.0;while(m<10){scanf("%d",&a[m]);m++;}for(i=0;i<10;i++)printf("%3d",a[9-i]);printf("\n");for(i=0;i<10;i++)for(j=0;j<9-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)printf("%3d",a[i]);c=a[0]-a[9];printf("\n%d",c);for(i=0;i<10;i++)d+=a[i];printf("\n%.3f",d/10.0);}十,矩阵转置及其元素最大值#include<stdio.h>void main(){int i,j,a[2][3],b[3][2],max;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<2;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%d ",i,j,a[i][j]);printf("\n");}for(i=0;i<2;i++){for(j=0;j<3;j++){b[j][i]=a[i][j];}}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("b[%d][%d]=%2d ",i,j,b[i][j]);printf("\n");}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j];}printf("max=%d",max);}十一,矩阵对角线元素和#include<stdio.h>void main(){int i,j,m=0,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%2d ",i,j,a[i][j]);printf("\n");}printf("对角线之和为:");for(i=0;i<3;i++)m+=a[i][i];printf("%d",m);}十二,斐波那契数列#include<stdio.h>void main(){int fib[20]={1,1};int i;for(i=2;i<20;i++)fib[i]=fib[i-1]+fib[i-2];for(i=0;i<20;i++){if(i%5==0)printf("\n");printf("%5d",fib[i]);}}十三,杨辉三角#include<stdio.h>void main(){int a[10][10],i,j;for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}十四,101-200之间的素数#include<stdio.h>void main(){int sum,num,i;for(num=101;num<=200;num++){sum=0;for(i=2;i<num;i++){if(num%i==0)sum++;}if(sum==0)printf("%5d",num);}}#include<stdio.h>void main(){int i,j,k;for(i=0;i<=20;i++)for(j=0;j<=33;j++)for(k=0;k<=99;k=k+3)if((i+j+k==100)&&(15*i+9*j+k==300))printf("i=%d j=%d k=%d\n",i,j,k);}十六,猴子吃桃#include<stdio.h>void main(){int x1,x2=1,day;for(day=9;day>0;day--){x1=2*(x2+1);x2=x1;}printf("第一天的桃子数:%d\n",x1);5.1 用π/4≈1-1/3+1/5-1/7+…公式求π的值,直到某一项的绝对值小于10-6为止。

C语言练习题

C语言练习题

C语言编程练习顺序结构:1.已知行驶时间与速度,试编程求解并输出行驶的路程(5分)。

2.编写程序对100以内所有能被3整除但不能被5整除的数求和并输出结果(6分)。

3.请编写程序,将“China”译成密码,密码规律是:用原来的字母后面的第4个字符代替原来的字母。

例如:字母“A”后面的第4个字母是“E”,用”E”代替“A”。

4.编写程序,将输入的大写字母转换为小写字母输出5. 编写一个C程序,输入a,b两个值,输出这两个数的和。

6.编写程序,输入一个人三门课的成绩,输出其平均成绩。

7.编写程序,任意输入一个三位整数,输出各位上数字之和,如输入123,则1+2+3=6,输出6。

8.输入圆的半径,输出该圆的周长和面积,结果保留2位小数。

9.编写程序,输入一个人三门课的成绩,输出其平均成绩。

10.利用中间变量,完成两值交换。

选择结构:11.编写一个C程序,以下程序根据输入的三角形的三边,判断是否能组成三角形,若可以则输出它的面积和三角形的类型编写程序。

12.编写程序输入x值,求解以下分段函数,并将其结果输出y=13.编写程序,判断输入的字符,若为小写字母,将其转换为大写字母,若为大写字母,将其转换为小写字母,若为其他字符,则原样输出。

14.编写程序,输入x的值,计算y的值:公式如右图:y={−1 x<00 x=01 x>0。

15.编写程序,根据输入的数字,输出相应的星期。

(1-7,则周一---周日,除此之外的数字,均输出无效输入的提示)循环结构:16.编写程序,输出1000以内的所有水仙花数。

水仙花数是指一个三位数,数的本身等于各位数字立方之和,如153=1^3+5^3+3^3。

17.编写程序,计算100以内能被3整除的数的和。

18.编写程序,求5!(输出格式要求为:例:5!=120)19.输入n个数,要求按照由小到大的顺序输出,并要求每行输出5个。

数组:20.编写程序,任意输入一行字符,以‘\n’结束,要求统计其中字母的个数,并将原字符及统计结果输出。

(完整版)C语言100个经典题目

(完整版)C语言100个经典题目

C语言程序设计习题授课对象:信息奥赛辅导成员授课时间:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?__________________________________________________________________程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…。

___________________________________________________________________程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf(“%12ld %12ld”,f1,f2);if(i%2==0)printf(“\n");/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/}}上题还可用一维数组处理,you try!题目:判断101—200之间有多少个素数,并输出所有素数。

__________________________________________________________________程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

___________________________________________________________________程序源代码:#include “math。

h”main(){int m,i,k,h=0,leap=1;p rintf(“\n”);for(m=101;m〈=200;m++){ k=sqrt(m+1);for(i=2;i〈=k;i++)if(m%i==0){leap=0;break;}if(leap){printf(“%-4d”,m);h++;if(h%10==0)printf(“\n");}leap=1;}printf(“\nThe total is %d”,h);}题目:打印出所有的“水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

C语言所有题目以及答案

C语言所有题目以及答案

C语言所有题目以及答案一.判断题1.关系运算符<=和==具有相同的优先级。

氮气。

7&3+12的值为15 n3.在turboc中,整型数据在内存中占2个字节。

y4.C语言本身不提供输入输出语句,输入输出操作由函数实现。

y5。

Char[]=“verygood”:为字符串数组赋值是一种合法声明。

y6。

定义宏时,宏名称必须用大写字母表示。

n7。

如果inti=10,则j=2;然后执行I*=j+8;最后一个I的值是28n8。

语句scanf(“%7.2f”和&A);是一种合法的扫描功能。

n9。

C语言中%运算符的操作数必须是整数。

Y10.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面。

n11.a=(b=4)+(c=6)是一个合法的赋值表达式。

y12.整数-32100可分配给int和Longint变量。

y13。

报表printf(“%F%%”,1.0/3);输出为0.333N14.若有宏定义:#defines(a,b)t=a;a=b;b=t由于变量t没有定义,所以此宏定义是错误的。

n15.x*=y+8等价于x=x*(y+8)y16.如果inti=10,则j=0;如果(J=0)I++,则执行该语句;我--;I的值是11 n17。

C语言只能逐个引用数组元素,而不能一次引用整个数组。

y18。

如果a=3、B=2、C=1,则关系表达式“(a>B)==C”的值为“真”。

y19。

C语言的所有函数都是外部函数。

Y20.如果想使一个数组中全部元素的值为0,可以写成inta[10]{0*10};n21.定义和声明(如有):inta;查克;漂浮物;scanf(“%d、%c、%f”、&a、&c、&f);如果你通过键盘输入:10,a,12.5,那么a=10,C=a',f=12.5y22.如果有一个字符串,其中第十个字符为‘\\n’,则此字符串的有效字符为9个。

C语言经典算法100例题目

C语言经典算法100例题目

看懂一个程序,分三步:1、流程;2、每个语句的功能;3、试数;小程序:1、尝试编程去解决他;2、看答案;3、修改程序,不同的输出结果;4、照答案去敲;5、调试错误;6、不看答案,自己把答案敲出来;7、实在不会就背会。

周而复始,反复的敲。

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?==============================================================【程序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,求应发放奖金总数?==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?==============================================================【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?==============================================================【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

==============================================================【程序6】题目:用*号输出字母C的图案。

c语言编程题及答案

c语言编程题及答案

c语言编程题及答案1. 输入输出题题目:编写一个程序,要求从键盘输入两个整数,然后输出它们的和。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 条件语句题题目:编写一个程序,要求从键盘输入一个整数,判断它是否为正数、负数还是零,并输出相应的提示信息。

答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n"); scanf("%d", &num);if (num > 0) {printf("这是一个正数。

\n"); } else if (num < 0) {printf("这是一个负数。

\n"); } else {printf("这是零。

\n");}return 0;}```3. 循环语句题题目:编写一个程序,要求计算并输出1到100之间所有偶数的和。

答案:```c#include <stdio.h>int main() {int i, sum;sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```4. 数组题题目:编写一个程序,要求定义一个包含10个整数的数组,并逐个从键盘输入数组元素的值,然后对数组进行逆序输出。

c语言题库及答案详解

c语言题库及答案详解

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语言高级编程题目

C语言高级编程题目一、数据结构与算法题目:实现一个链表,并实现插入、删除和查找操作。

题目:实现一个二叉树,并实现前序、中序和后序遍历。

题目:设计一个算法,将一个数组中的元素按照奇偶性排序。

二、内存管理题目:编写一个程序,动态分配内存并释放内存,以避免内存泄漏。

题目:实现一个简单的内存管理器,包括分配和释放内存的功能。

题目:分析 C 语言中内存管理存在的问题,并提出解决方案。

三、多线程编程题目:编写一个多线程程序,实现并发执行多个任务。

题目:使用线程同步机制,实现多个线程之间的数据共享和同步。

题目:分析 C 语言中多线程编程的优缺点,并提出改进方案。

四、文件I/O操作题目:编写一个程序,实现文件的读写操作。

题目:实现一个简单的文件系统,包括目录管理、文件读写等功能。

题目:分析 C 语言中文件I/O 操作的性能问题,并提出优化方案。

五、网络编程题目:编写一个简单的TCP 服务器和客户端,实现数据传输。

题目:实现一个基于UDP 的实时聊天程序。

题目:分析 C 语言中网络编程的优缺点,并提出改进方案。

六、数据库交互题目:使用 C 语言连接MySQL 数据库,并执行查询操作。

题目:实现一个简单的数据库管理系统,包括增删改查等功能。

题目:分析 C 语言中数据库交互的优缺点,并提出改进方案。

七、图形界面开发题目:使用GTK+ 库编写一个简单的图形界面程序。

题目:实现一个基于WinAPI 的窗口程序,并添加菜单、按钮等控件。

题目:分析 C 语言中图形界面开发的优缺点,并提出改进方案。

c语言必做100题

c语言必做100题

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

c语言考试题及答案简单

c语言考试题及答案简单C语言是一种广泛应用于计算机科学和软件开发领域的编程语言,熟练掌握C语言对于计算机专业学生来说至关重要。

为了帮助大家巩固对C语言的理解和应用能力,以下是一些简单的C语言考试题目及对应答案。

1. 请写出C语言中的关键字有哪些?答:C语言中的关键字包括auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while等。

2. C语言中如何定义一个整型变量并将其初始化为5?答:在C语言中,可以使用int关键字来定义一个整型变量,并使用赋值运算符“=”将其初始化为5。

具体代码如下:```cint num = 5;```3. 请解释C语言中的运算符和表达式。

答:C语言中的运算符用于执行各种数学和逻辑运算,而表达式是由运算符、操作数和运算符优先级组成的。

运算符可以分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。

表达式是计算结果的指令,可以根据需要组合运算符和操作数来实现不同的计算。

4. 如何在C语言中实现条件判断?答:在C语言中,可以使用if语句来实现条件判断。

if语句的语法结构如下:```cif (条件){// 条件为真时执行的代码}else{// 条件为假时执行的代码}```5. 请写出一个用循环语句计算1到100累加和的程序。

答:以下是一个使用循环语句计算1到100累加和的程序。

```c#include <stdio.h>int main(){int sum = 0;int i;for (i = 1; i <= 100; i++){sum += i;}printf("1到100的累加和为:%d\n", sum);return 0;}```通过以上例子,我们可以看到循环语句的使用,以及变量的定义和初始化,以及累加和的计算方法。

c语言编程题经典100例

c语言编程题经典100例

c语言编程题经典100例下面是经典的c语言编程题100例,每道题目都涵盖了c语言编程的各个方面,包括基本数据类型、条件语句、循环结构、函数与指针等。

通过这100道题目的练习,可以帮助初学者快速掌握c语言编程的基础知识,也有助于进一步深入了解c语言的高级特性。

1. 打印Hello World。

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. 输入一个表达式,求它的值。

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

C典型题目1.输入一个5行5列的二维数组,编程实现:(1) 求出其中的最大值和最小值及其对应的行列位置;(2) 求出上三角各元素之和。

void findmaxmin(float arrary[5][5]);//求最大值和最小值及其对应的行列位置float upright(float arrary[5][5]);//求上三角上各元素之和(上三角的元素a[i][j] ,i+j<5)void main(){float arrary[5][5];printf("please input arrary:\n");for(int i=0;i<5;i++)//输入一个5行5列的二维数组{for(int j=0;j<5;j++){Scanf(“%f”&arrary[i][j]);}}findmaxmin(arrary);//求最大值和最小值及其对应的行列位置printf("上三角各元素之和为:%f\n",upright(arrary));//求上三角上各元素之和}void findmaxmin(float arrary[5][5])//求最大值及其对应的行列位置{int i,j,maxrow=0,maxcolum=0,mainrow=0,mincolum=0;float max,min;max=arrary[0][0];min=arrary[0][0];for(i=0;i<5;i++){for(j=0;j<5;j++){if(arrary[i][j]>max){max=arrary[i][j];maxrow=i;maxcolum=j;}if(arrary[i][j]<min){min=arrary[i][j];minrow=i;mincolum=j;}}}printf(“max=%f\t maxrow=%d\t maxcolum=%d\n",max,maxrow,maxcolum);printf(“m in=%f\t minrow=%d\t mincolum=%d\n",min,minrow,mincolum);} float upright(float arrary[5][5])//求上三角上各元素之和{float sum=0;int i,j;for(i=0;i<5;i++){for(j=i;j<5;j++){sum=sum+arrary[i][j];}return sum;} } 2. 编写程序实现求e x 的幂级数。

x 和n 的值从键盘输入。

!......!2!112n x x xe nx ++++=double ex(int n,double x);long fac(int n);double fxi(int i);void main(){int n;double x;print("please input n,x\n");scanf(“%d%f ”,&n,&x);printf(“%f ”, ex(n,x));}double fxi(int m)//求x 的n 次方{double fx=1;for(int i=0;i<=m;i++) {fx=fx*i;}return fx;}long fac(int n)//求n!{long f;if (n<0){printf("n<0, data error!\n");f=-1;}else if(n==0||n==1){f=1;}else{f=fac(n-1)*n;}return f;}double ex(int n,double x){int i;double fex=0;for(i=0;i<=n;i++){fex=fex+fxi(i)/fac(i);}return fex;}3.从键盘输入50个学生信息,对学生按成绩进行由小到大排序,并输出排序后学生信息,学生信息结构如下:struct student{char name[10];int num;float score;};void input(student stu[50])//学生信息的输入{int i;printf("please input students info:\n");for(i=0;i<50;i++){scanf(“%s%d%f”,&stu[i].name,&stu[i].num,&stu[i].score);}}void sort(student stu[50])//按成绩有小到大排序{int i,j;student studtemp;for(i=0;i<50-1;i++){for(j=0;j<50-j-1;j++){if(stu[i].score>stu[i+1].score){strcpy(,stu[i].name);studtemp.num=stu[i].num;studtemp.score=stu[i].score;strcpy(stu[i].name,stu[i+1].name);stu[i].num=stu[i+1].num;stu[i].score=stu[i+1].score;strcpy(stu[i+1].name,);stu[i+1].num=studtemp.num;stu[i+1].score=studtemp.score;}}}}void output(student stu[50]){int i;for(i=0;i<50;i++){printf(“%s%d%f\n”,stu[i].name,stu[i].num,stu[i].score);}}4.从键盘输入4个字符串,编程求出它们中最小的一个。

void main(){char string[20];char str[4][20];int i;for(i=0;i<4;i++){gets(str[i]);}strcpy(string,str[0]);for(i=1;i<4;i++){if(strcmp(string,str[i])>0){strcpy(string,str[i]);}}printf(“minstring=%f\n”,string);}5.从键盘输入一个长度为n的字符串,编程实现其逆序输出。

void main(){char str[100];int i,len=0;printf(“input a string:\n”);gets(str);for(i=0;str[i]!=’\0’;i++){len++;}for(len=len-1;len>=0;len--){printf(“%c”,str[len]);}}6.求下列式子之和,假定n=10S = 1 + (1+2) + (1+2+3) + …… + (1+2+3+……+n)long sum(int n)//求1+2+...+n之和{long sumtemp=0;for(int i=1;i<=n;i++){sumtemp=sumtemp+i;}return sumtemp;}void main(){int n;long S=0;scanf(“%d”,&n);for(int i=1;i<=n;i++){S=S+sum(i);}printf(“%ld\n”,S);}7.编程实现:求某字符串中前n个字符中的最大字符。

要求:字符串和n均由键盘键入。

char max(string str,int n)//求出字符串str中前n个字符中的最大字符{char ch;ch=str[0];for(int i=1;i<n;i++){if(str[i]>ch){ch=str[i];}}return ch;}void main(){char str[100];int n;printf("please input a string:"\n);gets(str);printf("please input a number n:\n");scanf(“%d”,&n);printf("The max char:%c\n",max(str,n));} 8. 编程计算从键盘输入的字符串中子串“XY”出现的次数。

int Counter(char sorcstr[],char deststr[2],int n);//统计子字符串deststr 在字符串sorcstr 中出现的次数 void main(){char str[100];char substr[2];int len;printf("please input a string:\n");gets(str);len=strlen(str);printf("please input a substring:\n");scanf(“%s ”,substr);printf("count(%c%c)=%d\n",substr[0],substr[1],Counter(str,substr,len)); }int Counter(char sorcstr[],char deststr[2],int n) {int count=0;//记录deststr 子字符串出现的次数int i;for(i=0;i<n;i++){if(sorcstr[i]==deststr[0]&&sorcstr[i+1]==deststr[1]){count=count+1;}}return count; }9. 勾股数就是满足222z y x =+的自然数,打印出50以内的所有勾股数。

void main(){int x,y,z;for(x=1;x<=50;x++){for(y=x+1;y<=50;y++){for(z=2;z<=50;z++){ if(x*x+y*y==z*z){printf("(%d,%d,%d)\n ”,x,y,z);}}}} } 10. 利用卡尔丹公式计算三次方程03=++q px x 的一个实根。

卡尔丹公式:32322323223232⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛--+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+-=p q q q p q xvoid main(){float p,q,x1,x2,x;printf(”请输入p ,q 值\n ”);scanf(“%f%f ”,&p,&q);x1=(-q/2+((p/2)* (p/2)+(q/3)* (q/3)* (q/3))/2)/3;x2=(-q/2-((q/2)* (q/2)+(p/3)* (p/3)* (p/3))/2)/3;x=x1+x2;printf(“x=%f ”,x);}11. 编写程序实现从键盘输入字符串,当遇到“!”时结束输入,并将输入的字符按倒序输出。

相关文档
最新文档