计算机C语言例题Word格式.docx
- 文档编号:16157453
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:34
- 大小:28.41KB
计算机C语言例题Word格式.docx
《计算机C语言例题Word格式.docx》由会员分享,可在线阅读,更多相关《计算机C语言例题Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
printf("
%4d"
i);
}
}
【1】i%10【2】g*g*g==i
【解析】填空1:
将一个整数对10求余,就得到这个数的个位数字,并存于变量g中。
填空2:
如果个位数字的立方等于这个数本身,则将这个数输出。
2.改错题
下列给定函数中,函数fun()的功能是:
统计字符串中各元音字母(即A,E,I,O,U)的个数。
字母不分大小写。
例如,输入THIsisaboot,则应输出是10220。
请改正程序中的错误,使它能得出正确的结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构。
conio.h>
/**********************found***********************/
fun(char*s,intnum[5])
{intk,i=5;
for(k=0;
k<
i;
k++)
num[i]=0;
for(;
*s;
s++)
{i=-1;
switch(s)
{case'
a'
:
case'
A'
{i=0;
break;
case'
e'
E'
{i=1;
i'
I'
{i=2;
o'
O'
{i=3;
u'
U'
{i=4;
if(i>
=0)
num[i]++;
{chars1[81];
intnum1[5],i;
clrscr();
printf("
\nPleaseenterastring:
"
);
gets(s1);
fun(s1,num1);
for(i=0;
5;
i++)printf("
%d"
num1[i]);
\n"
(1)错误:
正确:
voidfun(char*s,intnum[5])
(2)错误:
num[i]=0;
num[k]=0;
(3)错误:
switch(s)
switch(*s)
【解析】switch语句说明:
(1)switch后的表达式,可以是整型或字符型,也可以是枚举类型的。
在新的ANSIC标准中允许表达式的类型为任何类型。
(2)每个case后的常量表达式只能是常量组成的表达式,当switch后的表达式的值与某一个常量表达式的值一致时,程序就转到此case后的语句开始执行。
如果没有一个常量表达式的值与switch后的值一致,就执行default后的语句。
(3)各个case后的常量表达式的值必须互不相同,不然的话程序就不知该跳到何处开始执行。
(4)各个case的次序不影响执行结果,一般情况下,尽量使用出现机率大的case放在前面(为什么,等学到《数据结构》就知道了)。
(5)在执行完一个case后面的语句后,程序流程转到下一个case后的语句开始执行。
千万不要理解成执行完一个case后程序就转到switch后的语句去执行了。
在本例中,其他错误都比较简单,而且我们在前面已经介绍过了。
3.编程题
编写一个函数fun(),它的功能是:
实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirstString
SecondString
则程序输出:
FirstStringSecondString
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<
voidfun(charp1[],charp2[])
chars1[80],s2[40];
Enters1ands2:
);
scanf("
%s%s"
s1,s2);
s1=%s\n"
s1);
s2=%s\n"
s2);
Invokefun(s1,s2):
fun(s1,s2);
Afterinvoking:
%s\n"
【解析】本题用两个循环,第1个循环的作用是将i走到第1个字符串的末尾。
第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。
inti,j;
p1[i]!
='
\0'
;
i++);
/*求出的i为p1字符串的总长度,包括结束标记位*/
for(j=0;
p2[j]!
j++)
p1[i++]=p2[j];
/*将p2字符串连在p1字符串后面*/
p1[i]='
/*在字符串最后加上结束标记符*/
2
请补充函数fun(),该函数的功能是:
把数组aa中元素下标为偶数的元素按从小到大重新保存在原数组中,其它元素位置不变。
例如,输入"
33,67,42,58,25,76,85,16,41,56"
,则输出"
25,67,33,58,41,76,42,16,85,56"
。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
#defineN10
voidfun(intaa[])
inti,j,t;
for(i=0;
i<
N;
i=i+2)
for(【1】;
j<
j=j+2)
if(【2】)
{
t=aa[j];
aa[j]=aa[i];
aa[i]=t;
}
inti;
intaa[N]={33,67,42,58,25,76,85,16,
41,56};
printf("
\n***originallist***\n"
i++)
aa[i]);
fun(aa);
\n***newlist***\n"
【1】j=i或j=i+2【2】aa[i]>
aa[j]
本题采用选择法进行排序。
选择法的算法思路是:
如果有n个数则从头到倒数的第2个数一个一个往后走动,每走动一个数总是将这个数与其后的所有数进行两两比较,在比较时按题目要求的顺序将进行比较的这两个数排序(即交换)。
所以此空填j=i,而填j=i+2也可以,因为如果第一次执行循环体时j=i,则aa[i]和aa[j]是同一个元素,不会引起任何改变,所以可以从它的下一次循环开始,即j=i+2。
两两比较时,如果后面的元素比前面的元素小,则将两数交换,实现从小到大排列。
下列给定程序中,函数fun()的功能是:
找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
intfun(intm)
{inti,k;
for(i=m+1;
;
{for(k=2;
if(i%k!
break;
if(k<
i)
return(i);
{intn;
clrscr();
\nPleaseentern:
%d"
&
n);
printf("
%d\n"
fun(n));
if(i%k!
if(i%k==0)
if(k<
if(k>
=i)
【解析】也许刚接触C语言的学习者对素数的概念不清楚,在这里说明一下,素数就是质数,本题的任务是随便输入一个整数m,然后在m的后面寻找紧跟m的一个质数,作为函数值返回。
for(i=m+1;
i++){
是从m后面的一位开始循环,将m后面一位的值赋予i。
然后,我们依次判断m后面的一位是否为素数。
for(k=2;
if(i%k==0)
是一个简单的数学判断问题,判断i被赋予的值与k的余数是否为零。
请编写函数fun(),该函数的功能是:
实现B=A+A′,即把矩阵A加上A的转置,存放在矩阵B中。
计算结果在main()函数中输出。
例如,输入下面矩阵:
123
456
789
其转置矩阵为:
147
258
369
2610
61014
101418
voidfun(inta[3][3],intb[3][3])
{
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];
inti,j;
fun(a,t);
3;
{for(j=0;
j<
%7d"
t[i][j]);
【解析】在《线性代数》里面有矩阵转置的概念,行列数相等的二维数组的转置就是行列互换。
即转置后的第i行第j列正好对应原矩阵的第j行第i列。
若要将矩阵a转置后还存入a中可用程序:
inti,j,t;
for(i=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 语言 例题
![提示](https://static.bdocx.com/images/bang_tan.gif)