C语言上机150道题.docx
《C语言上机150道题.docx》由会员分享,可在线阅读,更多相关《C语言上机150道题.docx(118页珍藏版)》请在冰豆网上搜索。
![C语言上机150道题.docx](https://file1.bdocx.com/fileroot1/2023-4/17/52af88ca-9684-4733-9678-8ec557e0cb54/52af88ca-9684-4733-9678-8ec557e0cb541.gif)
C语言上机150道题
C语言上机150道题及参考答案
1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。
2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。
例如输入355和113,输出3.14159。
3.用while循环结构编写程序打印ASCII码为33-127的字符。
4.用do-while,for循环结构编写程序打印ASCII码为33-127的字符。
5.用for循环结构编写程序打印ASCII码为33-127字符。
6.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。
7.输入一个整数将其倒着输出,如54321——12345。
8.计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4。
9.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。
10.用while循环计算1+2+……+100的和。
11. 用dowhile循环计算1+2+……+100的和。
12.用for循环计算1+2+……+100的和。
13.输入一个小于等于10的整数n,计算n!
。
14.输入两个正整数m和n,计算m!
+n!
,m和n的值均小于10。
15.用循环语句,计算1~100之间的所有3的倍数之和。
16.用循环语句,计算100-200之间的所有7的倍数之和。
17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。
18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
19.输入一个整数,统计它有几位数。
如输入367,则该数有3位数。
20.编写程序,输出1到50中间所有能被3整除的正整数。
21.把100~200之间不能被3整除的输出。
22.编程Y=1+3+5+7+...111。
23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。
24.编程输出九九乘法表。
25.求1到100奇数和。
26.求1到100偶数和。
27.编程求200以内所有质数(素数)。
28.从键盘输入一个整数,求该数的绝对值。
29.从键盘输入+、-、*、/中的任一个,输出对应的英文单词:
plus、minus、mutiply、divide,如输入的不是这4个字符中的任一个,则输出“sorry,youarewrong”。
30.从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。
31.求解一元二次方程ax2+bx+c=0的跟(a不等于0),a,b,c均为实数,其值由键盘输入。
32.编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成绩。
设:
90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。
(要求用switch语句编程)。
33.输入一个整数,判断它能否被3,5,7整除。
34.用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。
要求用if嵌套实现)。
35.编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。
36.编写输入一个整数,将其数值按小于10,10~99,100~999,1000以上分类并显示。
37.编写输入一个整数,当为65时显示A,66时显示B,67时显示C,其他值时显示END的程序。
38.编程实现:
输入4个整数,要求按由小到大输出。
39.企业发放的奖金根据利润的提成,利润I低于或等于10万元的,奖金可提10%;利润高于10万元低于20万时,低于10万的部分按10%提成,高于10万元的部分,可提成7.5%;20万元
从键盘输入当月利润I,求应发奖金部分。
40.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。
90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。
41.给出一个不多于5位的正整数,分别打印出每一位数字。
42.从键盘输入三个正整数,判断这三个数能否构成三角形。
43.编写输入两个整数a和b,若a≥b时,求其积c并显示,若a
45.编程实现:
从键盘输入三个正整数,判断它们是否构成直角三角形。
46.编程实现:
从键盘输入三个正整数,判断它们是否构成等腰三角形。
49.从键盘输入一个整数,判断其是否素数。
50.两个乒乓球队进行比赛,各出3人。
甲队为A,B,C3人,已队为X,Y,Z3人。
已抽签决定比赛名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。
51.编写程序,从键盘输入两个不等于零的正整数a,b(a
52.编写程序,统计从键盘输入的字符的个数(回车换行符也是一个字符),当遇到结束标志时程序结束。
53.编写程序,求面积在100平方米以内的半径,输出所有满足条件的半径值和圆的面积的值。
54.编写程序,在屏幕上输出阶梯形式的乘法口诀表。
55.求两个正整数的最大公约数和最小公倍数。
56.某人有5张2角和4张3角的邮票,使用这些邮票能组合出多少种不同面值的邮资。
57.求不超过1000的回文素数。
58.自守数是指一个数的平方的尾数等于该数自身的自然数。
如:
762=5776,求出2000000以内的自守数。
59.输入自然数n,将n分解为质因子连乘的形式输出。
例如,输入756,则程序显示为756=2*2*3*3*3*7。
60.从键盘上输入若干个学生的成绩,当成绩小于等于0时结束输入。
计算出平均成绩,并输出不及格的成绩和人数。
61.编一函数,将一个字符串的字符反向输出到屏幕。
62.例6-5编一函数,从键盘输入一个正整数n,求n!
。
63.编一函数,从键盘输入一个正整数n,求Xn
64.编一函数,从键盘输入2个正整数,求最小公倍数。
65.输入1行字符(不超过80个字符)。
编一函数,统计该行字符中数字的个数。
66.输入一个5行、6列的整数数组,先以5行6列的格式输出该数组;从键盘输入一个整数,然后编一函数,查找该数是否在数组中。
67.编写程序,通过调用函数intabs_sum(inta,intb),求从键盘输入的任意3个整数的绝对值的和。
68.Fibonacci数列的组成规律为:
0,1,1,2,3,5,8,13,21,…。
编写程序,求Fibonacci数列第i项的值(0≤i≤40)。
69.编写程序,通过调用函数doublearea(doubler),计算园的面积,要求圆的半径r从键盘输入。
70.编写程序,通过调用函数doublearea(doubler,doubleh),计算园柱的表面积,要求圆柱的半径r及高h的值从键盘输入。
71.编写程序,通过调用函数doublearea(doubler,doubleh),计算园柱的体积,要求圆柱的半径r及高h的值从键盘输入。
72.编写一个函数,计算并返回一个整数的立方。
73.设计一个函数,交换数组a和数组b的对应元素。
75.设有两个整型数组a,b,试比较这两个数组统计出这两个数组中对应元素相等与不相等的个数。
76.编写程序,将字符串str中的所有字符k删除。
77.找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。
二维数组也可能没有鞍点。
78.回文是从前向后和从后向前读起来都一样的句子。
写一个函数,判断一个英文字符串是否为回文。
80.若有说明:
inta[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。
81.求Sn=a+aa+aaa+…+aaa…a的值。
例如当a=2,n=4时,Sn=2+22+222+2222。
a和n由键盘输入。
(用函数调用实现)
82.求两个正整数的最大公约数(用函数调用实现)。
83.计算1!
+2!
+3!
+…+n!
的值,n值由键盘输入(要注意n!
的有效性)。
84.编写程序,用冒泡法对20个整数排序。
85.编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。
86.输入1行字符(不超过80个字符)。
编一函数,统计该行字符中空格的个数。
87.编一函数,连接2个字符串,输出连接后的字符串。
88.编一函数,将1个字符串复制到另1个字符串,输出字符串。
89.输入一个5行、6列的数组,先以5行6列的格式输出该数组,然后编一函数,找出该数组中值最小的元素,输出该元素及其两个下标。
90.输入1行字符(不超过80个字符)。
编一函数,统计该行字符中字母的个数。
91.编写程序,对10个从键盘任意输入的字符排序后输出。
92.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。
93.编写函数,从一个排好序的整型数组中删去某数。
94.数组a长度为10,保存10个整数。
试编程将数组中的元素逆置。
要求:
使用自定义函数实现逆置操作。
(将数组中元素顺序颠倒)
95.编程模拟字符串复制函数strcpy。
要求:
不能调用系统函数,使用自定义函数实现。
96.编程模拟字符串比较函数strcmp。
要求:
不能调用系统函数,使用自定义函数实现。
97.编程模拟字符串连接函数strcat。
要求:
不能调用系统函数,使用自定义函数实现。
98.编程模拟字符串操作函数strupr(小写转化为大写)。
要求:
不能调用系统函数,使用自定义函数实现。
99.编程模拟字符串操作函数strlwr(大写转化为小写)。
要求:
不能调用系统函数,使用自定义函数实现。
100.从键盘输入5个整数,保存于数组中。
编程找出其中最大值和最小值,把二者位置对调,然后输出调整后的数组。
要求:
使用自定义函数实现对调。
101.有一个已排序好的数组,现输入一个数,要求按原来排序规则插入到数组中。
使用自定义函数实现。
103.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
104.请编一个函数fun(char*s),函数的功能是把字符串中所有的字母改写成该字母的下一个字母,最后一个字母z改写成字母a:
大写字母仍为大写字母,小写字母仍为小写字母,其他的字符不变。
105.编写函数voidfun(intx,intpp[],int*n),它的功能是:
求出能整除x且不是偶数的各整数,并放在pp所指的数组中,这些除数的个数通过形参n返回。
106.编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中’a’到’z’26个字母各自出现的次数,并依次放在pp所指数组中。
107.请编写一个函数voidfun(chara[],intk,intn),其功能是:
删除字符串中指定下标开始的n个字符:
其中,a指向字符串,k中存放指定的下标。
108.请编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和:
形参n给了数组中数据的个数:
利用指针odd返回奇数之和,利用指针even返回偶偶数之和。
109.编写函数fun,函数的功能是:
从字符串中删除指定的字符:
同一字母的大、小写按不同字符处理:
若程序执行时,输入字符串为:
turbocandBorlandc++,从键盘上输入字符:
n,则输出后变为:
turbocadborladc++。
如果输入的字符不存在,则字符串照原样输出。
110.请编一函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中,二维数组中的数已在主函数中赋予。
111.请编写函数fun,函数的功能是:
在字符串中所有数字字符前加一个$字符:
例如,输入:
A1B23CD45,则输出为:
A$1B$2$3CD$4$5。
112.请编一个函数fun(char*s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后:
例如:
原有的字符串为:
Mn.123xyZ,则调用该函数后,串中的内容为:
n.123xyZM。
113.将一个N*N的二维数组,在主函数中初始化并赋值:
请编写函数fun(inta[][N]),函数的功能是:
使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的值与倒数第二列中的值对调、……、其他依次类推。
(注:
N值必须大于3)
114.请编写函数fun,经的功能是:
求出1到1000之内能被7或11整除、但不能同时补7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
115.编写程序,将字符串S1插入到字符串S2的第n个字符之后。
116.在数组中保存10个整数,编程输出数组中的所有重复数字。
117.编写一个程序输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分开。
118.求二维数组的鞍点(即该位置上的元素在该行上最大,在该列上最小,也可能没有安点),输出其行、列下标。
119.定义一个含有30个整数的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
120.编写程序,从键盘上输入两个字符串a和b,要求不用strcat()函数把串b的前五个字符连接到串a中,如果b的长度小于5,则把b的所有元素都连接到a中。
121.用结构体类型编写程序,从键盘输入学生3门课程的考试成绩,计算并输出该学生的平均成绩。
122.编写程序,从键盘输入一整数,用位运算的方法输出该整数的二进制表示。
124.编写程序,将你正写编写的程序源代码显示在屏幕上。
(提示:
程序的源代码可视为文本文件)
125.编写程序,将你正写编写的程序源代码前10行显示在屏幕上。
(提示:
程序的源代码可视为文本文件)
126.编写程序,将你正写编写的程序源代码奇数行显示在屏幕上。
(提示:
程序的源代码可视为文本文件)
127.编写程序,将你正写编写的程序源代码偶数行显示在屏幕上。
(提示:
程序的源代码可视为文本文件)
128.编写程序,统计你正写编写的程序源代码的行数。
129.编写程序,统计你正写编写的程序源代码中字符a出现的次数。
130.编写程序,统计你正写编写的程序源代码中字符#出现的次数。
131.编写程序,统计你正写编写的程序源代码中字符i出现的次数。
132.编写程序,将从键盘输入的字符添加到文本文件myfile.txt的尾部。
133.编写程序,将从键盘输入的英文字符分4行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。
134.编写程序,将从键盘输入的英文字符分3行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。
135.编写程序,将从键盘输入的英文字符分2行添加到文本文件myfile.txt中,要求每行的字符数不大于10个。
136.编写程序,将阶梯形式的乘法口诀表输出到文件myfile.txt。
140.编写程序,从键盘输入一串字符,将输入的每一个字符的ASCII码输出到文件myfile.txt中,每个ASCII码之间用逗号分隔。
141.编写程序,从键盘输入10个字符,将输入的每一个字符及字符的ASCII码输出到文件myfile.txt中,每个字符与其ASCII码之间用逗号分隔,每个字符占一行。
142.编写程序,从键盘输入整数(整数值的大小范围在65~122之间),将该整数所代表的字符输出到文件myfile.txt中,每个字符之间用逗号分隔。
143.编写程序,从键盘输入10个整数(整数值的大小范围在65~122之间),将该整数及其所代表的字符输出到文件myfile.txt中,每个字符之间用逗号分隔,每个数占一行。
144.编写程序,从键盘输入一串字符,将该字符的ASCII码输出到文件myfile.txt中,每个ASCII码之间用空格分隔。
145.编写程序,从键盘输入10个字符,将输入的字符及字符的ASCII码输出到文件myfile.txt中,每个字符与其ASCII码之间用空格分隔,每个字符占一行。
146.编写程序,从键盘输入整数(整数值的大小范围在65~122之间),将该整数所代表的字符输出到文件myfile.txt中,每个字符之间用空格分隔。
147.编写程序,从键盘输入10个整数(整数值的大小范围在65~122之间),将该整数及其所代表的字符输出到文件myfile.txt中,每个字符之间用空格分隔,每个数占一行。
148.编写程序,将你编写的上一个程序的计算结果保存到文本文件myfile.txt中。
149.编写程序,从键盘输入一正整数,将该整数的八进制数保存到文本文件myfile.txt中。
150.编写程序,从键盘输入一正整数,将该整数的十六进制数保存到文本文件myfile.txt中。
001
#include
#include
main()
{
floata[10],ave,max,min,sum=0;
inti;
printf("请输入10个考生的成绩:
\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
sum+=a[i];
ave=sum/10;
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
min=a[0];
for(i=1;i<10;i++)
if(a[i]max=a[i];
printf("平均成绩:
%f,最高分:
%f,最低分:
%f",ave,max,min);
getch();
}
002
#include
#include
main()
{
inta,b;
printf("输入两个整数:
\n");
scanf("%d%d",&a,&b);
printf("这两个整数的商是:
%.5f",(float)a/b);
getch();
}
003
#include
#include
main()
{
inti=33;
while(i<=127)
{
printf("%c",i);
i++;
}
getch();
}
004
#include
#include
main()
{
inti=33;
do
{
printf("%c",i);
i++;
}while(i<=127);
getch();
}
005
#include
#include
main()
{
inti;
for(i=33;i<=127;i++)
printf("%c",i);
getch();
}
006
#include
#include
main()
{
inti;
for(i=1;i<=500;i++)
{
if(i%3==2&&i%5==3&&i%7==5)
printf("%d\n",i);
}
getch();
}
007(方法一)
#include
#include
#include
main()
{
chara[100];
intlen,i;
printf("请输入一个整数:
\n");
scanf("%s",a);
len=strlen(a);
for(i=len-1;i>=0;i--)
printf("%c",a[i]);
getch();
}
007(方法二)
#include
#include
main()
{
intnum,t;
printf("请输入一个整数:
\n");
scanf("%d",&num);
while(num>0)
{
t=num%10;
num=num/10;
printf("%d",t);
}
getch();
}
008
#include
#include
main()
{
intn;
floatt=1,s=0;
for(n=1;t>0.0001;n+=2)
{
t=(float)1/n;
s=s+t;
}
printf("s=%f",s);
getch();
}
009
#include
#include
main()
{
intn,i,s=0;
printf("请输入一个整数:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+i*i;
printf("%d",s);
getch();
}
010
#include
#include
main()
{
ints=0,i=1;
while(i<=100)
{
s=s+i;
i++;
}
printf("%d",s);
getch();
}
11.
#include
main()
{
inti,result;
i=1;result=0;
while(i<=100)
{
result=i+result;
i++;
}
printf("1+2+...+100=%d",result);
while
(1);
}
12.
#include
main()
{
inti,result;
for(i=1,result=0;i<=100;i++)
{
result=i+result;
}
printf("1+2+...+100=%d",result);
while
(1);
}
13.。
#include
longfac(intn)
{
longresult;
if(n==0||n==1){result=1;}
else{result=n*fac(n-1);}
returnresult;
}
main()
{
intn;longresult;
printf("请输入一个小于等于10的整数\n");
scanf("%d",&n);
if(n>=0&&n<=10)
{
result=fac(n);
printf("%d!
=