专升本C程序设计81例题Word文档格式.docx
《专升本C程序设计81例题Word文档格式.docx》由会员分享,可在线阅读,更多相关《专升本C程序设计81例题Word文档格式.docx(74页珍藏版)》请在冰豆网上搜索。
2.输入10个学生的成绩,求出平均分,并统计低于平均分的人数及及格率。
{
inta[10],i,sum=0,unave=0;
floatave,rate;
for(i=0;
i<
10;
i++)
{
scanf("
%d,"
a[i]);
sum+=a[i];
ave=sum/10;
if(a[i]<
ave)
unave++;
rate=(float)(10-unave)/10*100;
printf("
%4.2f,%d,%4.2f\%\n"
ave,unave,rate);
3.题目:
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:
(a>
b)?
a:
b这是条件运算符的基本例子。
2.程序源代码:
#include"
stdio.h"
conio.h"
intscore;
chargrade;
pleaseinputascore\n"
);
scanf("
%d"
grade=score>
=90?
'
A'
:
(score>
=60?
B'
C'
%dbelongsto%c"
score,grade);
4.将输入的小写字母转换成大写字母输出,当输入‘$’,字符时,则停止转换。
charc;
Enteracharacter:
"
do
c=getchar();
if('
a'
<
=c&
&
c<
='
z'
)
printf("
%c\n"
c-32);
while(c!
$'
5.题目:
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
inti=5;
voidpalin(intn);
\40:
palin(i);
\n"
voidpalin(n)
intn;
charnext;
if(n<
=1)
next=getchar();
\n\0:
putchar(next);
else
palin(n-1);
6.将n个字符串按由大到小的顺序进行排序。
#include<
string.h>
voidf(charp[][10],intn)
chart[20];
inti,j;
n-1;
for(j=i+1;
j<
n;
j++)
if(strcmp(p[i],p[j])<
0)
{strcpy(t,p[i]),strcpy(p[i],p[j]);
strcpy(p[j],t);
main()
charp[][10]={"
abc"
"
aabdfg"
abbd"
dcdbe"
cd"
};
inti;
f(p,5);
5;
%s\n"
p[i]);
7.从键盘接受一个字符串,分别统计其中大小写字母的个数。
voidcheckSum(char*s);
intmain()
charszInput[1024];
gets(szInput);
checkSum(szInput);
return0;
}
voidcheckSum(char*s)
intnA=0;
intna=0;
while(c=*s++)
if(c>
&
c<
Z'
)
nA++;
na++;
Upper%d.Lower%d.\n"
nA,na);
8.输入一行字符,分别统计出其中:
英文字母、空格、数字和其他字符的个数。
#include"
main()
{charc;
inti=0,j=0,k=0,l=0;
while((c=getchar())!
\n'
{if(c>
=65&
=90||c>
=97&
=122)i++;
elseif(c>
=48&
=57)j++;
elseif(c==32)k++;
elsel++;
printf("
i=%d,j=%d,k=%d,l=%d\n"
i,j,k,l);
9.题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
利用while语句,条件为输入的字符不为'
.
intletters=0,space=0,digit=0,others=0;
pleaseinputsomecharacters\n"
while((c=getchar())!
||c>
letters++;
elseif(c=='
'
space++;
elseif(c>
0'
9'
digit++;
others++;
allinall:
char=%dspace=%ddigit=%dothers=%d\n"
letters,
space,digit,others);
10.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。
chartongji(str0,b)
charstr0[100];
intb[4];
{inti;
for(i=0;
str0[i]!
\0'
;
i++)
{if(str0[i]>
str0[i]<
=90||str0[i]>
=122)b[0]++;
elseif(str0[i]>
=57)b[1]++;
elseif(str0[i]==32)b[2]++;
elseb[3]++;
{charstr1[100];
staticinti,a[4];
gets(str1);
tongji(str1,a);
zimuShuziKonggeQita\n"
4;
%-8d"
a[i]);
11.有一篇文章,共有3行文字,每行有个80字符。
要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。
{inti,j=0,k=0,l=0,m=0,n=0;
charstr0[301],str1[100],str2[100],str3[100];
gets(str2);
gets(str3);
strcat(str0,str1);
strcat(str0,str2);
strcat(str0,str3);
=90)j++;
=122)k++;
=57)l++;
elseif(str0[i]==32)m++;
elsen++;
DaxieXiaoxieShuziKonggeQita\n"
%5d%7d%5d%6d%4d\n"
j,k,l,m,n);
12.有一行电文译文下面规律译成密码:
A->
Z a->
z
B->
Y b->
y
C->
X c->
x
…
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。
非字母字符不变,要求编程序将密码回原文,并打印出密码和原文。
{inti;
charstr1[100],str2[100];
str1[i]!
if(str1[i]>
str1[i]<
=90)
str2[i]=155-str1[i];
elseif(str1[i]>
=122)
str2[i]=219-str1[i];
else
str2[i]=str1[i];
%s\n%s\n"
str1,str2);
13.编程序。
输入两个字符串(<
40个字符),连接后输出(不准用系统函数)。
/*Note:
YourchoiceisCIDE*/
string.h"
voidmain()
inti,j,k;
charstr1[80],str2[40];
%s"
str1);
str2);
k=strlen(str1);
j=strlen(str2);
=j;
str1[k+i]=str2[i];
main()
{inti,j;
charstr1[100],str2[100],str3[201];
str3[i]=str1[i];
for(j=0;
str2[j]!
j++)
str3[j+i]=str2[j];
%s\n%s\n%s\n"
str1,str2,str3);
14.用递归法将一个整数n转换成字符串(例如: