c语言的练习题 例如做题的网站。

文档分类:
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
淘豆网网友近日为您收集整理了关于我做过的c语言上机题题目与答案解析 4的文档,希望对您的工作和学习有所帮助。以下是文档介绍:我做过的c语言上机题题目与答案解析4请补充函数fun,该函数的功能是:把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数fun。例如,输入&abcdef&,输出&ace&。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include&stdlib.h&#include&stdio.h&#defineN80【1】{inti,j;【2】;for(i=0;i&n;i++){if(s[i]%2!=0)s[j++]=s[i];}【3】;}voidmain(){inti=0,strlen=0;charstr[N];system(&CLS&);printf(&\nInputastring:\n&);gets(str);while(str[i]!='\0'){strlen++;i++;}fun(str,strlen);printf(&\n***displaystring***\n&);puts(str);}下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include&stdio.h&#include&conio.h&longfun(longnum){/*************found**************/do{k*=num%10;/*************found**************/num\=10;}while(num);return(k);}main(){printf(&\Pleaseenteranumber:&);scanf(&%ld&,&n);printf(&\n%ld\n&,fun(n));}请编写一个函数fun,它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include&conio.h&#include&stdio.h&#include&stdlib.h&#defineM100voidfun(intm,int*a,int*n){}voidmain(){FILE*intaa[M],n,k;system(&CLS&);fun(50,aa,&n);for(k=0;k&n;k++)if((k+1)%20==0)/*每行输出20个数*/{printf(&%4d&,aa[k]);printf(&\n&);}elseprintf(&%4d&,aa[k]);printf(&\n&);/******************************/wf=fopen(&out.dat&,&w&);for(k=0;k&n;k++)fprintf(wf,&%4d&,aa[k]);fclose(wf);/*****************************/}【参考答案】(1)voidfun(chars[],intn)(2)j=0(3)s[j]='\0'【考点分析】本题考查:函数定义,需要确定类型标识符、函数名和形式参数。变量初始化,变量声明后,要进行初始化赋值,我们对变量进行初始化时,必须确定好变量的作用。字符串结束标识'\0',用来结束字符串,是经常考查的知识点。【解题思路】填空1:由main函数调用函数fun的格式可以知道,函数fun没有返回值,第一个参数是字符数组,第二个参数是整型变量。填空2:变量j声明时,没有初始化,所以在使用j之前要将它初始化为0。填空3:当把所有ASCII码为偶数的字符都存入字符串s中后,要在最后加上'\0',表示字符串的结束。【解题宝典】在给字符串赋值时,一定要记得在最后加上'\0'。【举一反三】考生可根据本书第12、83、86套题进行训练。【参考答案】(1)错误:正确:longk=1;(2)错误:num\=10;正确:num/=10;【考点分析】变量初始化,保存乘积的变量初始化为1。【解题思路】(1)k用来存放各位数字的积,初值应为1。(2)这里是一个符号错误,除号使用&/&来表示的。【解题宝典】明确C语言中的算术运算符:①加法运算符&+&:为双目运算符,即应有两个量参与加法运算。②减法运算符&-&:为双目运算符。但&-&也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。③乘法运算符&*&:双目运算符,具有左结合性。④除法运算符&/&:双目运算符,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。⑤求余运算符(模运算符)&%&:双目运算,具有左结合性。要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。【举一反三】考生可根据本书第24、54、67、84套题进行训练。【参考答案】voidfun(intm,int*a,int*n){inti,j=0;for(i=1;i&=m;i++)if(i%7==0||i%11==0)/*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/a[j++]=i;*n=j;/*返回这些数的个数*/}【考点分析】本题考查:整除的判断方法,用%对除数求余,若余数为0,表示能被整除。if语句条件表达式,注意&逻辑与&和&逻辑或&的区别。for循环语句,注意循环变量的取值范围。一维数组的定义与引用。【解题思路】本题要找出能被7或11整除的所有整数,注意数学中的&或&和C语言中的&或&的区别,在此处,if条件语句中用&||&运算符,若要找能同时被7和11整除的所有整数,则在if()中,应用&&&&运算符。【解题宝典】整除即用求余运算来完成:某数值n如能被数值m1或m2整除,则代码实现为:if(n%m1==0||n%m2==0)。某数值n如能被数值m1和m2整除,则代码实现为:if(n%m1==0&&n%m2==0)。1播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表我做过的c语言上机题题目与答案解析 4.doc
文档介绍:
我做过的c语言上机题题目与答案解析4请补充函数fun,该函数的功能是:把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数fun。例如,输入&abcdef&,输出&ace&。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include&stdlib.h&#include&stdio.h&#defineN80【1】{inti,j;【2】;for(i=0;i&n;i++){if(s[i]%2!=0)s[j++]=s[i];}【3】;}voidmain(){inti=0,strlen=0;charstr[N];system(&CLS&);printf(&\nInputastring:\n&);gets(str);while(str[i]!='\0'){strlen++;i++;}fun(str,strlen);printf(&\n***displaystring***\n&);puts(str);}下列给定程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include&stdio.h&#include&conio.h&longfun(longnum){/*************found**************/do{k*=num%10;/*************found**************/num\=10;}wh...
内容来自淘豆网转载请标明出处.C语言练习题;1、定义一个函数intfun(inta,intb;2、编写一个程序,将两个变量的值交换,例如变量a;3、从键盘输入3个数,将最大值放在变量a中,最小;例如,输入的数为:551234,;输出结果应当是:a=55.0,b=34.0,c=;4、编写函数fun(intn),它的功能是:计算;5、计算s,并输出;111;S=1+──+───+……+───
C语言练习题
1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。
3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
例如,输入的数为:55
输出结果应当是:a=55.0,b=34.0,c=12.0。
4、编写函数fun(int n),它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。例如:n=120时,函数值为239。
5、计算s,并输出
S = 1 + ── + ─── + …… + ──────
1+2+3+…+n
n通过键盘输入,例如:若n的值为11时,则函数值为:
6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:
时,t中的数为:7531。
7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。
8、已知一个数列的前三项分别为0,0,1, 以后的各项都是其相邻的前三项之和,计算并输出该数列前n项的平方根之和sum。例如,当n=10时,程序的输出结果应为:23.197745。
9、编写一个程序,从键盘输入m,输出大于m且紧随m的素数。
10、判断两个整数m和n是否互质(即是否有公共的因子)(m≠1,n≠1)。方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n不互质;否则它们互质。
例如,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。若输入89和187,则应输出Yes(表示它们互质)。
11、将十进制正整数m转换成k进制数(2≤k≤9)并输出(m,k从键盘输入)。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
12、统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零
13、计算并输出方程X+Y=1989的所有整数解
14、从键盘输入10个整数,求出其中的
15、从键盘输入n值,输出如右图形。(例
最大值。 如n=5
16、使用函数的方式,计算如下公式的值。
A1=1,A2=──,A3=──,……An=────
例如:若n=10,则应输出: 0.617977。
* 17、使用函数的方式,,按下面的公式计算并输出数列的第m项。
FFF( m ) = ┤
FFF(m - 3) + FFF(m - 1), m & 3; 例如,若输入整数 9,则应输出:47。
* 18、使用函数的方式,按以下递归公式求函数值
└fun(n-1)+2 (n&1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
19、计算并输出当0&x&0.97时下列多项式的值, 直到
|S(n)-S(n-1)|&0.000001为止。
0.5(0.5-1)
0.5(0.5-1)(0.5-2)
0.5(0.5-1)(0.5-2)…(0.5-n+1)
S=1+0.5x+─────x^2+─────────x^3… +──────────────x^n
例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。
20、计算并输出s。
s = 1 + x + ── + ── + …… + ──
n,x从键盘输入,例如,当n=10,x=0.3时,函数值为1.349859。
21、从键盘输入high,计算并输出high以内最大的10个素数之和。例如,输入high的值为100,则输出732。
22、请编写函数float fun(int n),它的功能是:返回n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,n=20,返回0.583333。注意:要求n的值不大于100。
23、请编一个函数fun(int *a, int n, int *odd, int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组a中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:数组中的值依次为: 1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even 返回偶数之和8。
24、编写计算三角形面积的程序,注意:将计算面积定义成函数float
fun(int a,int b,int c)(a,b,c为三角形的三条边,返回三角形的面积),在主函数中调用fun
25、编写程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一项的值小于10
26、计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。
例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。
27、将1到m之内(含m)能被7或11整除的所有整数放在数组a中。
例如,若输入m的值为50,则在数组a中的值为:
28、请编写函数int fun(int m,int score[],int below[]),它的功能是:将低于平均分的人数作为函数值返回,并将低于平均分的成绩放在below数组中(m表示score的长度,score表示成绩)。例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回4,below中的数据应为:10、20、30、40。
29、用插入排序法将n个字符进行排序(降序)。(提示:插入法排序的思路是:先对数组的头两个元素进行排序,然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。
包含各类专业文献、生活休闲娱乐、中学教育、专业论文、应用写作文书、幼儿教育、小学教育、91C语言练习题等内容。 
 C语言基础练习题及答案_IT认证_资格考试/认证_教育专区。很好的,做了之后很有收获 第一章 C 语言基础知识 ?1? 《C 语言程序设计》习题篇 第一章 C 语言...  C 语言语法基础练习题 语言语法基础练习题一、选择题 1.C 语言基本类型包括 ) . 语言基本类型包括( A) 整型、实型、逻辑型 B) 整型、实型、字符型、逻辑型...  C语言练习题(带详解答案)_其它_高等教育_教育专区。C语言复习题 一、 单项选择题 1. A )是构成 C 语言程序的基本单位。 ( A、函数 2.C 语言程序从 B、...  最新版c语言经典习题100例_IT/计算机_专业资料
暂无评价|0人阅读|0次下载|举报文档最新版c语言经典习题100例_IT/计算机_专业资料。整理过得c语言经典习题100例...  C语言考试题库及答案_IT认证_资格考试/认证_教育专区。C 语言理论上机考试选择...C语言试题库答案 28页 免费
C语言考试题库及答案 暂无评价 35页 免费 喜欢...  大学C语言期末考试练习题(带详解答案)_理学_高等教育_教育专区。一、 单项选择题 1. ( A )是构成 C 语言程序的基本单位。 A、函数 2.C 语言程序从 B、...  c语言练习题_其它_高等教育_教育专区。4.1 选择题 1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的...  C语言经典例题100道_IT/计算机_专业资料。经典C源程序 100 例 题目:有 1、2...填空练习(指向指针的指针) 1.程序分析: 2.程序源代码: main() 37 { char ...  C语言习题集(100题)+_IT认证_资格考试/认证_教育专区。1. i=2;printf(&%d&,i++);打印出来的数字为? 答案:2 解:i++和++i 均为自增表达式,执行完后...C语言(4)
1.打印99乘法表&pre name=&code& class=&cpp&&#include&stdio.h&
int main(){
for (i = 1; i &= 9; i++){
for (j = 1; j &= j++){
printf(&%d*%d=%d\t&, j, i, i*j);
if (i == j){
printf(&\n&);
system(&pause&);
以上是实现99乘法表的打印,用了2个for语句循环很容易实现。
2.打印100-200之间的素数
#include&stdio.h&
#include&math.h&
int main()
for (i = 101; i &= 200; i = i + 2){
for (j = 2; j & sqrt(i); j++)
if (i%j == 0)
if (m == 0)
printf(&%d是素数\n&, i);
system(&pause&);
return 0;}
在素数的求取过程中用到了sqrt()这个库函数,在使用sqrt()这个函数之前必须加上#include&math.h&这个头文件才能使用,在c语言中有很多的库函数需要我们积累,这会在我们在实现某些功能时提供方便。
另外在程序编写时要注意程序的优化,我们不仅仅要把程序的功能实现,还需要使这个程序最简单,最效率。
3.闰年打印
#include&stdio.h&
int main(){
for (i = 1000; i &= 2000; i++)
if (i % 4 == 0 && i % 100 != 0||i%400==0)
printf(&%-5d&,i);
system(&pause&);
}闰年的求取过程中最重要的就是掌握满足闰年的条件。
3.2个数的交换
#include&stdio.h&
int main()
{ int i = 10;
int j = 20;
int m = 0;
printf(&i=%d\tj=%d\n&,i, j);
printf(&i=%d\tj=%d\n&,i, j);
system(&pause&);
}在2个数的交换过程中用了一个用来保护的中间变量。
这个问题还可以不用中间变量 具体如下
#include&stdio.h&
int main()
int i = 10;
int j = 20;
printf(&i=%d\tj=%d\n&, i, j);
printf(&i=%d\tj=%d\n&, i, j);
system(&pause&);
}其中用了一个异或,2个数异或之后产生的值就好比密码一样,可以在把原值找回来,从而达到交换的目的。
4.写一个函数返回参数二进制中 1 的个数:
#include &stdio.h&
count_one_bits(unsigned int x);
int main()
scanf_s(&%d&, &a);
b=count_one_bits(a);
printf(&%d&,b);
system(&pause&);
count_one_bits(unsigned int x)
int count=0;
count += x % 2;
x = x / 2;
其中用了一个while循环使x的值又移即x/2,从而使x的值一直驱于0,从而跳出循环,在又移的过程对x进行取余,从而求出用二进制表示形式。
在此过程中需要注意的是数的左移右移,在数的左移时不管逻辑左移还是算术左移后边补得都是0,但是在右移过程中就不同了,在逻辑右移中左边都加0,但在算术右移时左边添加的东西和符号位有关,添加的就是符号位,而取逻辑还是算术和编译器有关,所以在上题中就要注意有符号和和无符号的右移。
5.10个数中找最大值#define _CRT_SECURE_NO_WARNINGS
#include &stdio.h&
int main()
int a[10] = {0};
printf(&请输入10个数&);
for (i = 0; i & 10; i++)
scanf(&%d&,&a[i]);
int max = a[0];
for (i = 1; i &=9; i++)
if (max & a[i])
max = a[i];
printf(&max=%d&, max);
system(&pause&);
}其中用了一个一维数组,注意一维数组的赋初值与一维数组的输入。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1158次
排名:千里之外
原创:13篇
(4)(2)(2)(5)(2)

我要回帖

 

随机推荐