《编程基础》复习题Word下载.docx
《《编程基础》复习题Word下载.docx》由会员分享,可在线阅读,更多相关《《编程基础》复习题Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
i++)a[i-1]=i;
14、’x’(字符)在内存中占1个字节,”x”在内存中占2个字节(字符串本身就包含了\0)。
15、数组在内存中占连续一片的存储区,用数组名代表其首地址。
16、C语言是一种结构化程序设计语言,而结构化程序设计的基本结构有3种,分别是顺序结构、选择结构和循环结构。
22、表达式8.0*(1/2)的值为0.0。
33、用指针变量作为实参、形参,实现两个数的值互换,请填空。
voidswap(int*p1,int*p2)
{intp;
p=*p1;
*p1=*p2;
*p2=p;
}
main()
{inta=10,b=25;
swap(&
a,&
b);
printf(“\na=%d,b=%d”,a,b);
}
38、C语言规定,标识符只能由数字、字母、下划线3种字符组成,而且第一个字符必须是字母或下划线组成。
42.已知intx=5,y=5,z=5;
执行语句x%=y+z;
后,x的值是__5__。
43、假设a是字符型变量,写出从键盘上输入一个字符并且赋值给a的语句:
a=getchar()或scanf(“%c”,&
a);
48、C语言认为零为逻辑"
假"
,非零为逻辑"
真"
。
51、定义了数组inta[3],若想使指针p指向数组a,则定义语句为
__int*p=a;
______。
52、C语言的数据类型中,构造类型共有三种,其中__数组_____是同一类型的数据项占连续存储空间,_结构体_____是若干不同类型的数据项占连续存储空间。
53、从编写好一个C程序到完全运行,一般要经历四步,分别为编辑、
__编译______、连接和执行。
57、设有以下变量定义,并已赋确定的值
charw;
intx;
floaty;
doublez;
则表达式:
w*x+z-y所求得的数据类型为double。
64、一个C程序由若干个函数组成,其中必须有一个___main()___函数。
65、TC2.0中inta=-1,a在内存中的存储形式是16个1
66、已知大写字母C的ASCII码是67,则chara=’C'
;
语句执行后内存中存储的二进制码是01000011。
67、整型常量和实型常量也称为数值常量,它们有正负值之分。
68、C语言基本数据类型包括整型、字符型、枚举类型和实型。
69、在C语言中,将字符串作为字符数组处理。
71、由一次函数调用加一个分号构成一个函数调用语句语句。
72、如果想输出字符“%”,则应该在”格式控制”字符串中用%表示。
三、读程序,写出其结果
1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
{charch;
ch=getchar();
if(ch>
=’a’&
&
ch<
=’z’||ch>
=’A’&
=’Z’)
printf("
ItisanEnglishcharacter\n"
);
elseif(ch>
=’0’&
=’9’)
printf("
Itisadigitcharacter\n"
elseif(ch==‘’)
Itisaspacecharacter\n"
else
Itisothercharacter\n"
2.10个学生成绩按选择法排序
main()
{floata[10],t;
inti,j,k;
printf("
Pleaseenterscore:
\n"
for(i=0;
10;
i++)
scanf(“%f”,&
a[i]);
for(i=0;
9;
{k=i;
for(j=i+1;
j<
j++)
if(a[j]>
a[k])
k=j;
if(i!
=k)
{t=a[i];
a[i]=a[k];
a[k]=t;
}
Sortedresults:
for(i=0;
i<
10;
%4.1f\n"
a[i]);
3.3自定义一函数求n!
编写程序输入n,输出n!
.
longjc(intn)
{inti
longp=1;
while(i<
=n)
{p=p*i;
i++;
returnp;
}
voidmain()
{intn;
Pleaseentern:
"
scanf("
%d"
&
n);
%d!
=%ld\n"
n,jc(n));
4.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
用输入0来结束输入,用i,j来放统计数,请填空完成程序。
voidmain()
{intn,i=0,j=0;
printf(“inputainteger,0forend\n”);
scanf(“%d”,&
while(n或n!
=0)
{if(n>
0)i=i+1;
elsej=j+1;
printf(“i=%4d,j=%4d\n”,i,j);
5.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。
#include<
stdio.h>
voidmain()
{inta[10],i,x;
printf(“input10integers:
”);
for(i=0;
i<
i++)
scanf(“%d”,&
printf(“inputthenumberyouwanttofindx:
scanf(“%d”,&
x);
for(i=0;
i++)
if(x==a[i])
break;
if(i<
10)
printf(“theposofxis:
%d\n”,i);
elseprintf(“cannotfindx!
\n”);
8.下面是判断一个数是否为素数的函数
/*函数功能:
判断参数是否是素数
函数入口参数:
整型数,要求为正整数
函数返回值:
非0值表示是素数,否则不是素数*/
#include<
math.h>
intIsPrime(intnumber)
{inti;
if(number<
=1)/*负数、0和1都不是素数*/
return0;
for(i=2;
sqrt(number);
i++)
if(number%i==0)/*被整除,不是素数*/
return0;
return1;
9.编程计算1+3+5+……+101的值
{inti,sum=0;
for(i=1;
=101;
i+=2)
sum=sum+i;
printf("
sum=%d\n"
sum);
10.输入一个学生的成绩(在0~100分之间),进行五级评分并显示。
voidmain()
{ intscore;
scanf("%d",&
score);
if(score>
=0&
score<
=100)
switch(___score/10___)
{
case10:
case9:
printf("Excellent\n");
case8:
printf("Good\n");
case7:
printf("Middle\n");
break;
case6:
printf("Pass\n");
__break____;
default:
printf("Nopass\n");
11.排序函数:
用交换法按成绩由高到低对学生成绩重新排序
函数参数:
实型数组score,存储学生成绩
整型变量n,代表数组元素个数
无
voidSort(floatscore[],intn)
{inti,j;
floattemp1;
n-1;
{for(j=i+1;
if(score[j]>
score[i])
{temp1=score[j];
score[j]=score[i];
score[i]=temp1;
}
12.编程计算1+3+5…+99的值
{inti,sum=0;
i=1;
while(i<
100)
{sum=sum+i;
i+=2;
15.从键盘输入一个字符,判断它是否是英文字母。
{charc;
inputacharacter:
c=getchar();
if(c>
=‘A’&
c<
=‘Z’||c>
=‘a’&
=‘z’)
Yes\n"
else
No"
16.以下使用数组来处理打印斐波那契数列的前20项的程序。
打印时,每行打印10个数字。
斐波那契数列的格式为:
当n=0时,f[0]=0,当n=1时,f[1]=1,当n>
1时,f[n]=f[n-1]+f[n-2]
#include“stdio.h”
voidmain()
{intfbn[20];
intline=0,j;
fbnq[0]=0;
fbnq[1]=1;
for(j=2;
20;
j++)
fbnq[j]=fbnq[j-1]+fbnq[j-2];
for(j=0;
{printf(“%d”,fbnq[j]);
line++;
if(line==10)
{line=0;
printf(“\n”);
19.程序读入20个整数,统计非负数个数,并计算非负数之和。
#include<
main()
{inti,a[20],s,count;
s=count=0;
scanf(“%d”,&
a[i]);
{if(a[i]<
0)continue;
s+=a[i];
count++;
printf(“s=%d\tcount=%d\n”,s,count”);
四、程序编写
1.题目:
输入三个整数x,y,z,请把这三个数由大到小输出。
2.题目:
打印出如下图案(菱形)
*
***
******
********
3.题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前10项之和。
4.题目:
编写不使用strcat命令实现两个字符串连接程序
5、题目:
输出杨辉三角形(要求输出15行)。
1
11
121
1331
14641
15101051
……
6、题目:
用二分法求一元方程的近似解。
7、题目:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
8、题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
9、题目:
输入某年某月某日,判断这一天是这一年的第几天?
10、题目:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
11、题目:
从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。
输入的字符串以!
结束。
12、题目:
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
13、题目:
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"
stud"
中。
14、题目:
求0—7所能组成的奇数个数。
15、题目:
16、题目:
17、题目:
给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
18、题目:
利用递归方法求5!
五、算法和程序
看NS图编写C程序
如:
题目:
既是完全平方数,又有两位数字相同的三位正整数,如144
#include<
inttemp_int[100];
intmain()
{
inti;
intk;
intj=-1;
intgewei;
intshiwei;
intbaiwei;
for(i=10;
32;
{
temp_int[++j]=i*i;
for(k=0;
k<
=j;
k++)
baiwei=(int)(temp_int[k]/100);
shiwei=(int)((temp_int[k]-100*baiwei)/10);
gewei=temp_int[k]-100*baiwei-10*shiwei;
if(baiwei==shiwei||baiwei==gewei||shiwei==gewei)
%d\n"
temp_int[k]);