C语言作业题整理
- 格式:doc
- 大小:106.00 KB
- 文档页数:25
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语言编程练习题一、基础练习1. 编写一个程序,计算并输出两个整数的和、差、乘积和商。
提示:使用scanf函数输入两个整数,使用算术运算符进行计算。
2. 编写一个程序,计算并输出一个圆的面积。
提示:圆的面积公式为A = π * r * r,其中 r 是圆的半径。
3. 编写一个程序,计算并输出一个矩形的周长和面积。
提示:矩形的周长公式为 P = 2 * (l + w),面积公式为 A = l * w,其中 l 是长度,w 是宽度。
4. 编写一个程序,判断一个整数是奇数还是偶数。
提示:使用模运算符 % 来判断。
二、控制结构练习1. 编写一个程序,根据用户输入的分数,输出对应的等级。
提示:90分以上为 A,80-89分为 B,70-79分为 C,60-69分为D,60分以下为 F。
2. 编写一个程序,实现简单的猜数字游戏。
提示:程序随机生成一个1到100之间的整数,用户输入猜测的数字,程序根据用户输入给出提示(太高、太低或正确)。
3. 编写一个程序,实现一个简单的计算器。
提示:程序提示用户输入运算符(+、-、*、/)和两个操作数,然后输出计算结果。
三、数组练习1. 编写一个程序,实现对一个整数数组的排序。
提示:可以使用冒泡排序、选择排序或插入排序算法。
2. 编写一个程序,找出一个字符串数组中最长的字符串。
提示:遍历字符串数组,比较每个字符串的长度。
3. 编写一个程序,实现字符串的反转。
提示:可以使用数组的索引特性来实现。
四、函数练习1. 编写一个函数,计算一个数的阶乘。
提示:使用递归或循环来实现。
2. 编写一个函数,实现字符串的复制。
提示:不使用库函数,手动复制字符串。
3. 编写一个函数,判断一个字符串是否为回文字符串。
提示:回文字符串是指正读和反读都一样的字符串。
五、指针练习1. 编写一个程序,使用指针交换两个整数的值。
提示:注意指针变量的赋值和解引用。
2. 编写一个程序,实现字符串的连接。
c语言试题及详细答案1. 以下哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. 在C语言中,哪个运算符用于计算两个整数的和?A. +B. -C. *D. /答案:A3. 下面哪个选项是C语言中正确的注释方式?A. // 这是一个注释B. /* 这是一个注释 */C. //* 这是一个注释D. /* 这是一个注释 */答案:B4. 在C语言中,以下哪个选项表示的是浮点型变量?A. int a;B. float a;C. char a;D. double a;答案:B5. 以下哪个函数用于输出字符串?A. printf()B. scanf()C. puts()D. getchar()答案:C6. 在C语言中,以下哪个选项表示的是字符型变量?A. int a;B. char a;C. float a;D. double a;答案:B7. 在C语言中,以下哪个选项是正确的函数定义?A. int function() { return 0; }B. int function() { }C. int function() { return 0; }D. int function() { return 1; }答案:C8. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:A9. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0) { ... }B. if (x > 0) ... }C. if (x > 0) { ... }D. if (x > 0) ... }答案:A10. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 0; i < 10; i++) ... }C. for (int i = 0; i < 10; i++) { ... }D. for (int i = 0; i < 10; i++) ... }答案:A。
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.哈希表释放。
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题1. 构成C语言程序的基本单位是()。
A.函数B.变量C.子程序D.语句是不正确的转义字符。
2. C语言规定:在一个源程序中,main()函数的位置()。
A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。
A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。
A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。
A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。
A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。
A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。
A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。
A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。
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. 数组与循环题- 题目:编写一个程序,求一个整数数组中所有元素的和。
1.第一次1.1.编写一程序,通过键盘输入一华氏温度,将其转换为摄氏温度后输出。
公式为c=5/9(f -32) #include "stdio、h"main(){fl oat f=0,h=0;printf("请输入华氏温度:");scanf("%f",&f);printf("转化为摄氏温度为:");h=(fl oat)5/9*(f-32);printf("%、2f\n",h);}1.2.通过键盘输入一小写字母,将其转换为大写字母输出,并输出该大写字母得后一位字母与前一位字母(如果输入该大写字母为A,则其前一位字母为Z;如果输入该大写字母为Z,则其后一位字母为A)。
#include "stdio、h"main(){char ch1,ch2,ch3,ch;printf("请输入一个小写字母:\n");whil e(scanf("%c",&ch),ch<97 || ch>122){printf("您输入得符号不就是小写字母,请重新输入一个小写字母:\n");}printf("其对应得大写字母与前后得大写字母分别为:\n");if(ch=='a'){ch2=ch-32;ch1=ch2+25;ch3=ch2+1;}else if(ch=='z'){ch2=ch-32;ch1=ch2-1;ch3=ch2-25;}else {ch2=ch-32;ch1=ch2-1;ch3=ch2+1;}printf("%c,%c,%c\n",ch1,ch2,ch3);}1.3.通过键盘输入一个两位得整数,试编写程序将其个位与十位分别以字符得方式输出。
输出形式为:“the input number is 您输入得整数,the tens is 十位数字,the units is 个位数字。
”如果输入得整数不正确,则输出“wrong input”#include "stdio、h"main(){int a,b1,b2;printf("请输入一个两位正整数:\n");scanf("%d",&a);if(a<10||a>=100){printf("输入不符合要求");}else{b1=a%10;b2=a/10;printf("十位数就是:%c\n个位数就是:%c\n",b2+'0',b1+'0');}}1.4.给定方程ax^2+bx+c=0,试编写程序根据键盘输入实数a、b、c,能输出其根,要求:如果该方程有两个不同得根,则输出形式为"the Answer of ax^2+bx+c=0 is x1=根1,x2=根2"如果该方程有两个相同得根,则输出形式为"the Answer of ax^2+bx+c=0 is x1=X2=根"如果该方程无解,则输出形式为"the Answer of ax^2+bx+c=0 is none",其中a、b、c均为键盘输入,输出结果保留两位小数。
#include "stdio、h"#include "math、h"main(){float a,b,c,disc,x1,x2;scanf("%f,%f,%f",&a,&b,&c);disc=b*b-4*a*c;if(disc==0){x1=x2=-b/(2*a);printf("the Answer of ax^2+bx+c is x1=x2=%、2f\n",x1);}else if(disc>0){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("the Answer of ax^2+bx+c is x1=%、2f,x2=%、2f\n",x1,x2);}else{printf("the Answer of ax^2+bx+c=0 is none\n");}}2.第二次2.1.求1/3+3/5+5/7+…前20项之与。
(本题要求分别以goto,for,do 、、、whil e,whil e四种循环语句实现)#include <stdio、h>int main(){int i;float s=0;for(i=1;i<=20;i++){s+=(float)(2*i-1)/(2*i+1);}printf("s=%f\n",s);return 0;}#include <stdio、h>int main(){int p,r,n,m;printf("n,m:");scanf("%d,%d",&n,&m);if(p=n*m)while(m!=0){r=n%m;n=m;m=r;}printf("最大公约数就是%d\n",n);printf("最小公倍数就是%d\n",p/n);return 0;}#include<stdio、h>void main(){int s,i,j;int a;printf("请输入一个数:\n");scanf("%d",&a);for(i=1;i<=a;i++){s=0;for(j=1;j<i;j++){if(i%j==0)s=s+j;}if(i==s){printf("完全数%d=",i);for(j=1;j<i;j++)if(i%j==0)printf("%d+",j);printf("\b \n");}}}2.2.输入两个正整数,求其最小公倍数。
#include <stdio、h>int main (){int n;printf("请输入您得学号:\n");scanf("%d",&n);{int i,j,k=3,s=1;for (i=1;i<8;i++){for(j=0;j<k;j++) printf(" ");for(j=0;j<s;j++) printf("*");printf("\n");if(i<4){k--;s=s+2;}else{k++;s=s-2;}}}else{int m,a,b;printf("请输入任意一个正整数:\n");scanf("%d",&m);for(a=1;a<=m;a++){for(b=1;b<=m;b++)printf("* ");printf("\n");}}return 0;}2.3.如果一个正整数得所有因子之与等于该正整数,则称这个正整数为完全数。
编写程序读入n,输出不超过n得全部完全数。
如6=1+2+328=1+2+4+7+14#include<stdio、h>void main(){int s,i,j;int a;printf("请输入一个数:\n");scanf("%d",&a);for(i=1;i<=a;i++){s=0;for(j=1;j<i;j++){if(i%j==0)s=s+j;}{printf("完全数%d=",i);for(j=1;j<i;j++)if(i%j==0)printf("%d+",j);printf("\b \n");}}}2.4.将学号对2取模(即取余),值为0得同学完成编写程序利用星号打印出菱形图案;否则完成编写程序利用星号打印出正方形图案。
#include <stdio、h>int main (){int n;printf("请输入您得学号:\n");scanf("%d",&n);if(n%2==0){int i,j,k=3,s=1;for (i=1;i<8;i++){for(j=0;j<k;j++) printf(" ");for(j=0;j<s;j++) printf("*");printf("\n");if(i<4){k--;s=s+2;}else{k++;s=s-2;}}}else{int m,a,b;printf("请输入任意一个正整数:\n");scanf("%d",&m);for(a=1;a<=m;a++){for(b=1;b<=m;b++)printf("* ");printf("\n");}}return 0;}3.第三次3.1.已知y=2x^3 -3x^4 +6x^5 -4x+50 ,从x=0 到x=2 ,每隔0、2 计算,并输入正整数n,将y 得值进行排序后由小到大输出前n项与后n项(如输入5,则输出前5项与后5项,即最小得5个y 值及最大得5个y值)。
#include<stdio、h>main(){int i, j, k, h, l, n;fl oat x, t, y[11];i=0;for(x=0;x<2、1;x=x+0、2){y[i]=2*x*x*x-3*x*x*x*x+6*x*x*x*x*x-4*x+50; i=i+1;}printf("请输入一个1--11以内正整数\n");scanf("%d",&n);if(0<n&&n<12){for(l=0;l<n-1;l++){for(j=1;j<n-l;j++){ if(y[j-1]>y[j]){t=y[j-1]; y[j-1]=y[j]; y[j]=t;}}}printf("最小得%d个y值就是\n\n",n);for(k=0;k<n;k++)printf("%f\n\n",y[k]);printf("最大得%d个y值就是\n\n",n);for(h=11-n;h<11;h++)printf("%f\n\n",y[h]);}else printf("您输入得数字超出规定范围\n");}3.2.输入一个班10个学生得成绩,统计各分数段[0,60),[60,70),[70,80),[80,90),[90-100]得人数。