C语言上机练习题Word格式.docx
- 文档编号:7726377
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:15
- 大小:24.24KB
C语言上机练习题Word格式.docx
《C语言上机练习题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言上机练习题Word格式.docx(15页珍藏版)》请在冰点文库上搜索。
clscif(x<
10)
{y=2*x-l;
printf(ux=%d,y=2*x-l=%d\nu,x,y);
}
else
{y=3*x-ll;
printf(ux=%d,y=3*x-l1=%d\nu,x,y);
4.当输入19,2,21时以下程序运行的结果是().
main()
{inta,b,c,max;
plcasuscanthrccnumbsa,b,c:
\n'
);
scanf("
%d,%d,%d"
a,&
bAc);
max=a;
if(max<
b)max=b;
c)max=c;
printf(nmaxis:
%dn,max);
5.运行以下程序时,从键盘键入China*CR>〔<CR>代表回车〕,那么下面程序的运行结
果是
voidmain()
intvl=0,v2=0;
charch;
for(;
(ch=getchar())!
=;
switch(ch)
{
case'
a'
:
case'
h'
default:
vl++;
o'
:
v2++;
printf(u%d,%d\nM,vl,v2);
〕
6.下面程序的运行结果是
voidmainO
{inti,j,k=19;
while(i=k-l)
{k-=3;
if(k%5==0){i++;
continue;
}elseif(k<
5)break;
i++;
printf(i=%d,k=%d\nv,i,k);
7,以下程序的输出为o
voidmainO
{inti,j,k=0,m=0;
for(i=0;
2;
{for(j=0;
j<
3;
j++)k++;
k-=j;
}m=i+j;
printf(〃k=/d,m=%d\nz,,k,m);
8.下面程序的运行结果是o
voidmain()
intn[3],i,j,k;
i<
i++)n[i]=O;
k=2;
for(i=0;
k;
for(j=0;
j++)
n[j]=n[i]+1;
printf(u%d\n,*,n[1]);
I
9.阅读程序,写出程序运行结果.
#incIude<
#defineMAXWOvoidmain()
{intf[MAX],i,j,k二2,m=5;
=m;
i++)f[i]=1;
f[k-1]=2;
for(i=k;
for(j=i-k;
=i-1:
f[i]+=f[j];
printf("
%d%5d%5d\n"
k,m,f[m]);
1
10.下面程序可求出矩阵a的两条对角线上的元素之和.请填空.
voidmainO(
inta[3][3]={1,3,6,7,9,11,14,15,17},suml=0,sum2=0,i,j;
for(i=0;
for(j=0J<
j++)if(i==j)suml=suml+a[i][j];
for([1];
⑵;
j-)
if((i+j)==2)sum2=sum2+a[i][j];
printf(suml=%d,sum2=%d\n〞,suml,sum2);
}
H.以下矩阵:
Y\
-0.2
o-
-1
Y2
—
-0.8
X
Y3
Y4
下面程序的功能是求出Yl,Y2,Y3,Y4的值.请填空.
floats[4][4]={{1,,0,0},{,1,,},
floatx[4]={l,1,1,1},y[4];
inti,j,k;
4;
i++)(y[i>
0;
[1]
for(k=0;
k<
k++)
printf(“\nY[%d]=%-6.2f〞,k+l,【2】);
12.运行以下程序时,如果从键盘上输入:
ab<
回车>
c<
回车?
defv回车>
那么输出结果为().
include"
〞
#defineN6voidmain(){charc[N];
inti=O;
N;
c[i]=getchar(),i++);
i++)putchar(c[i]);
printf(,,\nH);
A.aB.aC.abD.abcdef
bbc
ccddd
13.给出以下程序的运行结果:
"
include"
voidinain(){charstr[81]5str1[81];
intk=l,i=lJ;
intflag=O;
gets(str);
strl[O]=str[O];
while(str[i]!
='
\O'
if(str[i]==strl[j])flag=l;
if(flag!
=l)strl[k++]=str[i];
)for(i=0;
i++)printf("
%3c"
strl[i]);
)
如运行时输入:
abcbaccba
14.假设输入一个整数10,以下程序的运行结果是
sub(inta){intc;
c=:
a%2■
returnc;
{inta,e[10],c,i=0;
printf(“输入一整数\n"
);
scanf("
%d"
&
a);
while(a!
=0)
{c=sub(a);
a=a/2;
e[i]=c;
for(;
i>
i—)printf(u%dw,e[i-l]);
15.以下程序的正确运行结果是o
MefineMAXIO
inta[MAX],i;
sub2()(
intaLMAX],i,max;
max=5;
max;
i++)a[i]=i;
}subl()(
MAX;
i++)a[i]=i+i;
sub3(intaL])(
inti;
i++)printf("
%d"
a[i]);
printf(“\n〞);
printf("
\n"
);
subl();
sub3(a);
sub2();
sub3(a);
16.以下程序的正确运行结果是o
ttincludeOfunc(inta,intb)(
staticintm=O,i=2;
i+=m+l;
m=i+a+b;
return(m);
}voidmainO
intk=4,nFl,p;
p=func(k,m);
printf(u%d,M,p);
p=func(k,m);
printf("
/d\n〞,p);
17.阅读程序,说出程序的运行结果0.
#defineADD(x)x+x
intm=l,n=2,k=3;
intsum=ADD(m+n)*k;
printf(Hsum=%d,\sum);
18.以下程序的正确运行结果是o
intfun(intx,inty,int*cp,int*dp){*cp=x+y;
*dp=x-y;
trincludeO
{inta,b,c,d;
a=4;
b=3;
fun(a,b,&
c,&
d);
printf(,z%d%d%d%d\n/z,a,b,c,d);
19.以下程序的正确运行结果是o
SincludeO
{inta[]={2,3,4,5};
ints,i,*p;
s=l;
p=a;
=3;
i++)s+=*p++;
printf(,,s=%d\n,z,s);
20.以下程序的正确运行结果是o
voidmainO{
voidmove(int*);
inta[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3],*pl=*a,i,j;
pl<
*a+9;
pl++)printf("
%3d"
*pl);
printf(〃\n〃);
pl=*a;
j++)printf(飞3d〃,*(pl+i*3+j));
printff\n"
P二a;
move(p);
printf(〃%3d%3d%3d\n〞,a[i][0],a[i][1],a[i][2]);
voidmove(int*pointer)
{inti,j,t;
for(j=i+l;
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
21.以下程序的正确运行结果是0
SincludeOtrincludeOvoidmainO{char*pl,strl[20]="
xyz〞,str2[20];
pl="
abed〞;
pl++;
strcat(strl+1,pl+1);
strepy(str2,strl);
printfstr2);
22.以下程序的输出结果是#include<
structabc{inta,b,c;
};
{structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=s[0].a+s[l].b;
printf(飞d\n〃,t);
1.摊论个卖西瓜,以西瓜的重量论价.1.斤以上的每斤元,8斤以上的每斤元,6斤以上的每斤元,4斤以上的每斤元,4斤以下的每斤元,从键盘输入西瓜的重量和顾客所付钱数,输出应付款和应找钱数.
2.编写程序完成任意两个数的运算,要求从键盘输入四个运算符之一和任意两
个数,输出运算结果.
3,给定一个日期,输出这个日期是该年的第几天〔输入的数据格式为YYYYMMDD,保证输入的数据有效〕.
4.找出广99之间满足以下条件的数:
该数的平方对于10的余数等于该数本身,或者该数的平方对于100的余数等于该数本身.
5.编写一个程序,输出菱形图案,第一行为一个字母A,第二行为三个字母B,依此类推,第n行为2n-l个相应的字母,以后每行字母个数递戒.n由键盘输入.
6.从键盘输入假设干整数〔数据个数应少于50〕,其值在0至4的范围内,用-1作为输入结束的标志.统计每个整数的个数.试编程.
7.设计一个程序,将上学期本队学员高数课程的测试成绩排序,并给出每一个学员的名次.〔如果有并列第一,那么取消第二名,以此类推〕
8.编程求具有4行4列数据的二维数组每一列元素之和并将其放入该列的第五行上.输出第五行元素.
9.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小.
也可以没有鞍点.〔用常规算法做的时候,要求数据不能相同〕
10.从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接到串a中;
如果b的长度小于5,那么把b中的所有元素都连接到a中.试编程.
11.通过键盘输入三行英文文字,编写程序将输入的三行文字输出,要求输出结果中不允许包含大写字母〔输出时如遇到大写字母那么将其转换为小写〕.
12.以下程序的功能是应用下面的近似公式计算e的n次方.函数fl用来计算每项分子的值,函数f2用来计算每项分母的值.请编写fl和f2函数.
x2v3
=l+x+—+—+-••〔前20项的和〕
floatf2〔intn〕
〔}
floatfl(intx,intn)
{}
voidmain()
floatexp二;
intn,x;
printf(aInputanumber:
printf(u%d\nv,x);
exp=exp+x;
for(n=2;
n<
=19;
n++)
exp=exp+f1(x,n)/f2(n);
printf(a\nTheisexp(%d)=%8.4f\nM,x,exp);
运行结果•Inputanumber:
3
Theisexp(3)=
13.函数del的作用是删除有序数组a中的指定元素X.已有调用语句n=del(a,n,x);
其中实参n为删除前数组元素的个数,赋值号左边的n为删除后数组元素的个数.请
填空.
14.从键盘输入一个整数(小于等于8位),将其转换成字符串后输出.如:
输入
1991,输出1口9口9口1.要求输入和输出在主函数完成,功能的实现在子函数完成.
15.编写一个函数,对具有10个整数的数组进行如下操作:
从第n个元素开始到最后一个元素,依次向前移动一个位置,空出的最后一个位置放入第n-l个元素,输出移动后数组的全部元素值.(n的取值1〜10)
16.编写一程序,完成学生成绩的输入、查询、排序、插入功能,每个功能完成后都
要输出结果.
要求:
1)在主函数中定义一个数组址11],用以存放学生的成绩,分别调用下面的6个子函
数,完成各自功能;
2)编写一个函数inputsc(inta[]),从键盘输入10个学生成绩;
3)编写一个函数outputsc(inta口,intn),输出n个学生成绩;
4)编写一个函数query(inta口,intn),查询第n个学生成绩并输出结果;
5)编写一个函数sort(inta[10]),在函数中进行10个学生成绩从高到低排序;
6)编写一个函数insert(inta[]).再输入一个学生的成绩,将此成绩插入到原已排好序的学生成绩数组中;
7)改良上一步的函数为sortl(inta[],intn,charstyle),将n个学生成绩排序,排序方式根据sort.函数的style参数进行,如style为方按升序排,style为d按降序排.
17.输入假设干个整数,编写两个函数分别实现:
A.对它们按从大到小的顺序排列:
sort(int*x,intn)
B.对键盎:
揄入的任一整数,能够按已排序好的规律将它插入到适宜的位置:
insert(int*x,intn,inty)其中y为欲插入的整数
18.有一个长度为n的字符串,编写一函数strc(char*pl,char*p2,intm,intn),将此字符串中从第m个字符开始的全部字符复制到另外一个字符串.在主函数输入和输出.
19.用结构体实现输入某年某月某日,计算出这一天是本年度的第几天.
20.请设计一个程序,完成以下功能:
请输入0-5之间的数字,实现相应的功能:
0:
原始数据的录入1:
查询某学生的信息
2:
插入一个学生3:
删除一个学生
4:
打印全体学生信息5:
退出
学生登记表如下:
学号
姓名
性别
籍贯
入学成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 练习题