C语言题库及答案Word格式.docx
- 文档编号:20673506
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:24
- 大小:24.52KB
C语言题库及答案Word格式.docx
《C语言题库及答案Word格式.docx》由会员分享,可在线阅读,更多相关《C语言题库及答案Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
=0)
y=0;
elseif(x<
=10)
y=x;
=20)
y=10;
else
y=sin(x);
y=%f"
y);
3输入三个正整数x,y,z,将这三个数由小到大输出
intx,y,z,t;
scanf("
%d%d%d"
x,&
y,&
z);
if(x>
y)
{t=x;
x=y;
y=t;
}/*交换x,y的值*/
if(x>
z)
{t=z;
z=x;
x=t;
}/*交换x,z的值*/
if(y>
{t=y;
y=z;
z=t;
}/*交换z,y的值*/
printf("
smalltobig:
%d%d%d\n"
x,y,z);
4从键盘输入一个年号,判断该年号是否为闰年,并输出结果。
闰年是能被4整除但不能被100整除;
或能被100整除且能被400整除的年号。
{inty;
%d"
y);
if(y%400==0||y%4==0&
&
y%100!
=0)printf("
Yes.\n"
elseprintf("
No.\n"
5编程实现四位电话号码的升位。
原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:
输入1234,则输出:
21234。
6输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
sqrt(x)属于math.h)
inta,b,c;
请输入三边边长:
%d,%d,%d"
b,&
c);
if(a+b>
c&
a+c>
b&
b+c>
a)
floats,area;
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("
三角形面积为%f"
area);
else
输出错误"
7判定用户输入一个不大于999的正整数是否为一个回文数。
回文数是指正读和反读都相同的数。
main()
longge,bai,x;
%ld"
bai=x/100;
ge=x%10;
if(ge==bai)
thisnumberisahuiwen\n"
else
thisnumberisnotahuiwen\n"
8从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。
转换的方式是:
将a中较大的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=49,则结果b=94。
inta,b,x,y;
pleaseinputanumber"
a);
if(9<
a&
a<
x=a/10;
y=a%10;
if(x>
=y)
b=a;
b=10*y+x;
theresultis%d"
b);
awrongnumber"
9将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
#include<
'
intparse(int*a,int*num)'
{'
inti=0;
intn=0;
n=(int)sqrt(*num);
for(i=2;
i<
=n;
i++)'
{'
if(*num%i==0)'
*a=i;
*num=*num/i;
return1;
}'
return0;
}'
voidmain()'
inti=0,cnt=90;
%d="
cnt);
while(parse(&
i,&
cnt))'
%d*"
i);
%d\n"
10设有一分数列:
2/1,3/2,5/3,8/5,13/8,21/13,……试编程求出这个数列的前十项之和。
{inti,x,y,a;
floatsum=0;
x=2;
y=1;
for(i=1;
i<
20;
i++)
sum+=(float)(x)/y;
//printf("
%d/%d\n"
x,y);
a=x;
x=x+y;
y=a;
%7.5f\n"
11输入一个同学的C语言成绩,要求输出成绩等级'
A'
'
B'
C'
D'
E'
。
等级划分原则是:
90分以上者为'
,80-89分为'
,70-79分为'
,60-69分为'
,60分以下为'
intiNum;
sacnf("
&
iNum);
switch(iNum/10)
case10:
case9:
A\n"
break;
case8:
B\n"
case7:
C\n"
case6:
D\n"
default:
E\n"
12求一个3*3矩阵两条对角线元素之和。
要求初始化该数组元素。
#definek3
intmain()
intenter;
//intk=3;
intarr[k][k];
inti,j,sum=0;
for(i=0;
k;
for(j=0;
j<
j++)
enter);
arr[i][j]=enter;
if(i==j)
sum+=arr[i][j];
sum+=arr[i][k-i-1];
if((k%2)==1)
sum-=arr[k/2][k/2];
%d"
arr[i][j]);
\n"
13输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
string.h>
{charc;
intw=0,x=0,y=0,z=0;
while((c=getchar())!
='
\n'
)
{if((c>
a'
c<
z'
)||(c>
&
))
w++;
elseif(c=='
'
x++;
elseif(c>
0'
9'
y++;
z++;
w=%d,x=%d,y=%d,z=%d"
w,x,y,z);
14实现两个数的#法和$法运算。
如输入3,4,#,输出25;
输入3,4,$,输出34;
提示:
#法和$法运算是自己定义的一种运算,a#b=a*a+b*b,a$b=a*10+b。
voidmain()
{
inta,b;
charc;
%d,%d,%c,"
switch(c)
case'
#'
:
a*a+b*b);
$'
a*10+b);
}
第二题汇总
14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。
inta[10]={2,3,4,1,5,6,7,8,9,10},i,x,j,k;
10;
if(a[i]==x)
for(j=i;
a[j]=a[j+1];
for(k=0;
k<
9;
k++)
%3d"
a[k]);
break;
elseif(i==9)
no"
15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。
chara[7]={"
howare"
};
charb[1];
inti,j,k;
pleaseinputthestring:
gets(b);
7;
if(a[i]==b[0])
5;
%c"
elseif(a[i]=='
\0'
no\n"
16'
计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。
要求初始化矩阵,输出计算结果并输出该矩阵。
inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}};
inti,sum=0,max,j;
4;
sum=sum+a[i][i];
max=a[0][0];
if(max<
a[i][j])
max=a[i][j];
thesumis%dandthemaxnumberis%d\n"
sum,max);
17初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。
chara[20]={"
asldfkjasldkf"
inti;
puts(a);
a[i]);
18编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。
要求初始化矩阵。
inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}},i,j,max;
max=a[i][0];
a[i][j]);
themaxnumberis%d\n"
max);
21初始化一个存放10个整数的数组,删除其中所有的小于0的数据。
当前的数据为1–1–68966–569,则输出结果为1896669。
inta[10]={1,-1,-6,8,9,6,6,-5,6,9};
theoriginstringis"
thechangestringis"
if(a[i]>
0)
22已知4X4矩阵,求行下标和列下标均为偶数的元素之和,要求输出原始矩阵以及和值。
提示:
例如A[0][0]、A[0][2]的行下标和列下标均为偶数。
要求初始化矩阵
}。
23编写一个函数sum,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n
voidmain()
floatsum(intn,intm);
intn;
floats=0;
inputthenumbern:
n);
if(n%2==0)
s=sum(n,2);
s=sum(n,1);
Thesumis%f.\n"
s);
floatsum(intn,intm)
inti;
floatsum=0;
floatk=1;
for(i=m;
i+=2)
sum=sum+k/i;
return(sum);
33编写函数voidnew(charstr[]),该函数将字符串str中下标值为偶数的字符删除,串中剩余字符形成一个新串。
编写函数charstrmax(charstr[])在新字符串中查找最大的字符。
编写一个程序,调用上述各个函数。
要求:
在main()函数中初始化字符串str并输出原字符串str,调用各个函数后在主函数中输出处理后的新字符串str以及最大字符。
不允许使用字符串库函数。
voidnewstr(charstr[])
intj=0;
charnewstr[100];
str[i]!
;
newstr[j]=str[i];
j++;
newstr[j]='
=j;
str[i]=newstr[i];
charstrmax(charstr[])
charmax[1];
max[0]=str[0];
if(max[0]<
str[i])
max[0]=str[i];
returnmax[0];
charmax[2];
charstr[]="
Ilovethenorheeastenuniversity"
puts(str);
newstr(str);
max[0]=strmax(str);
max[1]='
puts(max);
26编写一个函数string,其功能是将字符串中所有小写字母全部转换成大写字母,在主函数中,初始化一个字符串,调用函数string后,输出转换后的字符串。
voidcapital(char*a){/*转成大写*/
char*p;
\nncapitalis:
for(p=a;
*p!
p++){
if(*p>
*p<
*p-32);
*p);
voidlowercase(char*a){/*转成小写*/
\nlowercaseis:
Z'
*p+32);
voidmain(){
chara[20];
pleaseinputastring:
%s"
a);
capital(a);
lowercase(a);
29将一维数组中的10个元素对调。
即第一个元素变为最后一个元素,最后一个元素变为第一个元素,第二个元素和第八个元素对调…。
inta[10],i,j,t;
输入数组元素:
i++)
a[i]);
=4;
t=a[i];
a[i]=a[9-i];
a[9-i]=t;
\n输出处理后的数组:
a[i]);
30求矩阵的所有靠外侧的各元素值之和。
要求初始化矩阵(4行5列),输出原始的矩阵和外侧的各元素值之和,用循环实现。
例如,矩阵为:
300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
2维数组外圈元素之和。
NR行,NC列,元素按顺序排列。
intmat_sum(int*x,intNR,intNC)
inti,j,sum=0;
for(i=0;
NC;
i++)sum+=x[i];
i++)sum+=x[(NR-1)*NC+i];
for(j=1;
NR-1;
j++)sum+=x[j*NC];
j++)sum+=x[(j+1)*NC-1];
returnsum;
inti,j;
intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
mat_sum(&
x[0][0],4,3));
第三题
1.函数voidfun(inta[],intn,int*big,int*small),该函数的功能是分别求出数组a中所有偶数项中的最小值与所有奇数项中的最大值,形参n给出数组中数据的个数;
利用指针small返回偶数项中的最小值,利用指针big返回奇数项中的最大值。
在主调函数中初始化一个一维数组,并在主调函数中调用函数fun后在主调函数中输出结果。
voidfun(inta[],intn,int*small,int*big)
n;
if(i%2==0)if(*big<
a[i])*big=a[i];
if(i%2!
=0)if(*small>
a[i])*small=a[i];
return;
intb[6]={3,5,4,7,6,10},small=1000,big=0;
fun(b,6,&
small,&
big);
big=%d\n"
big);
small=%d\n"
small);
getch();
2.编写函数voidnew(charstr[]),该函数将字符串str中ASCII值为偶数的字符删除,串中剩余字符形成一个新串。
编写函数voidstringcat(charstr1[],charstr2[])将原字符串str链接在新串的后面。
在main()函数中初始化字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)