程序设计基础C作业答案带原题.docx
- 文档编号:23884062
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:58
- 大小:133.60KB
程序设计基础C作业答案带原题.docx
《程序设计基础C作业答案带原题.docx》由会员分享,可在线阅读,更多相关《程序设计基础C作业答案带原题.docx(58页珍藏版)》请在冰豆网上搜索。
程序设计基础C作业答案带原题
《程序设计基础(C)》作业
第1章C语言的基本构成
一、选择题
1.(A)是构成C语言程序的基本单位。
(A)函数
(B)
过程
(C)子程序
(D)
文件
2.(B)是C语言提供的合法的数据类型关键字。
(A)Float
(B)
signed
(C)integer
(D)
Char
3.以下选项中不合法的用户标识符是(A)。
(A)abc.c
(B)
file
(C)Main
(D)
PRINTF
4.以下选项中不合法的用户标识符是(AB)。
(A)l23
(B)
printf
(C)A$
(D)
Dim
5.合法的C语言长整型常数是(A)。
(A)0L
(B)
5712700
(C)
(D)
6.C语言中,要求运算数必须是整型的运算符是(
A)。
(A)%
(B)
/
(C)<
(D)
!
7.以下选项中正确的整型常量是(B)。
(A)12.
(B)
-20
(C)l,000
(D)
0458
(A)—1(B).
(C)(D)456e—2
9.C语言中运算对象必需是整型的运算符是(D)。
(A)\(B)+
(C)*(D)%
二、程序调试题
1.编辑、调试以下程序
步骤1:
在VisualC++环境下新建文件可用[开始]t[程序]t[MicrosoftVisualC++]宀
[MicrosoftVisualC++]t[文件]t[新建]t[文件]t[C++SourseFile],输入文件名,
程序代码如下:
intadd(intx,inty)
int乙
z=x+y;
return乙
intmain()
scanf("%d%d\n",&a,&b);
printf("%d+%d=%d\n",a,b,c);
/*调用系统输出函数printf
,%d为格式控制符,依次用后面的变量值填充,以整数形
式输出*/
请思考文件由几个函数构成
由个函数构成
调用了那几个系统函数
调用2个系统函数,分别是scanf和printf
此程序中用到了哪几个保留字哪几个用户自定义标识符
保留字:
int,return自定义表示符:
z,x,y,a,b,c
步骤3:
编译并运行程序,程序运行时输入两个整数,2040,观察程序运行的结果。
20+40=60
2.编辑、调试以下程序
步骤1:
在VisualC++环境下新建文件可用[开始]t[程序]t[MicrosoftVisualC++]
[MicrosoftVisualC++]t[文件]t[新建]t[文件]t[C++SourseFile],输入文件名
步骤2:
在文本编辑器中输入以下C程序
#include<>/*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/
#include<1-2-2>
intmain()
{
intand(int,int);/*
函数的说明,告诉系统在主函数中要调用and函数*/
intor(int,int);/*
函数的说明,告诉系统在主函数中要调用and函数*/
inta,b,c;/*
变量的定义*/
scanf("%d%d",&a,&b);
c=and(a,b);/*
函数调用*/
printf("%d&&%d=%d\n",a,b,c);
/*调用系统输出函数printf,%d
为格式控制符,依次用后面的变量值填充,以整数形式
输出*/
printf("%d||%d=%d\n",a,b,c);
}
步骤3:
文件]t[新建]t[文件][C++SourseFile],输入文件名1-2-2,源程序代码为:
intand(inta,intb)
{
intc;
c=a&&b;
returnc;
}
步骤4:
文件]t[新建]t[文件]t[C++SourseFile],输入文件名1-2-3,源程序代码为:
intor(inta,intb)
intc;
c=a||b;
returnc;
步骤4:
点击执行图标可,执行程序,当程序运行时,键盘输入2040,按回车。
2040
20&&40=1
20||40=1
您可以输入其它的整数,观察程序的执行结果。
30
3&&0=03||0=0
第2章输入输出程序设计
1.用printf输出一个中空的五角星。
#include<>
voidmain(){
printf("\t*
\n");
printf("\t**
\n");
printf("\t**
\n");
printf("\t****
****\n")
printf("\t*
*\n");
printf("\t*
*\n");
printf("\t*
*\n");
printf("\t**
*\n");
printf("\t**
**\n");
printf("\t*
*\n");
2.仿照例子,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
#include<>
intmain(){
chars[255];
printf("请输入:
");
scanf("%s",s);
printf("你输入的是:
%s\n",s);return0;
}
3.从键盘输入十六进制整数,转化为八进制数输出。
#include<>
intmain(){
inta;
printf("请输入一个十六进制数:
");
scanf("%x",&a);
printf("这个数转化为八进制数为%o\n",a);
return0;
4.只定义两个整型数据并赋值,实现两个整型数的互换。
#include<>
intmain(){
inta=10;
intb=20;
a=aAb;
b=bAa;
a=aAb;
printf("a=%d,b=%d\n",a,b);
return0;
}
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
#include<>
intmain(){
inta;
printf("
请输入一个十进制数:
");
scanf("%d",&a);
printf("
这个数转化为八进制数为
%o\n",a);
printf("
这个数转化为八进制数为
%x\n",a);
return0;
}
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
#include<>
intmain()
inta;
scanf("%d",&a);
printf("百位数为%d\n",a/100);
printf("十位数为%d\n",a%100/10);
printf("个位数为%d\n",a%10);
return0;
}
7.以下程序输出结果是(9,10)。
#include<>
voidmain()
{
inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
&运行程序,屏幕提示“您是一个学生吗”,您输入’y'或’n'进行回答,屏幕输出您
的选项。
#include<>
intmain()
{
chars;
printf("你是学生吗(Y/N):
");
scanf("%s",&s);
if(s=='Y'||s=='y')
{
printf("你是学生~~\n");
}
else
printf("你不是学生~~\n");
return0;
}
9.从键盘输入一个角度x,求10*sin(x)的值。
#include<>
#include<>
intmain()
{
inta;
scanf("%d",&a);
doubler=10*sin(a);
printf("%f\n",r);
return0;
}
第3章循环程序设计
C)do{i++;}while
(1)
4.以下for语句的循环次数是多少
inti,j=3;
for(;i=j;i--,j--)printf("%d",i);
执行了3次
5.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;i<6;i++)
printf("%d",h[i][i])
6.写出以下程序运行的结果,此程序实现了什么功能
#include<>
voidmain()
{inta[10]={2,4,0,-5,10,6,-8,9,6,7};
inti,count=0;
for(i=0;i<10;i++)
if(a[i]==0)count++;
elsecontinue;
printf("%d\n",count);
}
该程序实现的功能为:
计算数组a中包含几个0
7.写出以下程序的功能。
#include<>
voidmain()
{
inta[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;
for(k=0;k<10/2;k++)
{
tmp=a[k];
a[k]=a[10-k-1];
a[10-k-1]=tmp;
此程序实现功能:
将数组颠倒
&写出以下程序运行后的输出结果。
#include<>
voidmain()
{
inti,j;
for(i=0;i<6;i++)
{
for(j=0;j
printf("");
for(j=0;j<2*(5-i)-1;j++)
printf("*");
printf("\n");
}
}
输岀倒三角形
*********
'k'k'k'k'k'k'k
9.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
(1)#include<>
voidmain()
#include<>
inti,s;
i=1;s=0;
while(i<=100);
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
voidmain()
{
inti,s;
i=1;s=0;while(i<=100){
#include<>
voidmain()
{
printf(“1+2+3+….+99+100=%d\n”,s);
ints=0;
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
1*3*5*7*9=945
}
10.输入一个基数,例如输入9,输出为:
求1*3*……*9的值。
输出为:
#include<>
intmain()
{
inta,b;
b=1;
scanf("%d",&a);
for(inti=1;i<=a;i+=2){
b=b*i;
}
printf("%d\n",b);
return0;
}
11.
1!
+2!
+3!
+…+5!
输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
=153
#include<>
intmain()
{
inta,b,c;
b=1;
c=0;
scanf("%d",&a);
for(inti=1;i<=a;i++)
{
for(intj=1;j<=i;j++)
{
b=b*j;
}
c=c+b;
b=1;
}
printf("%d\n",c);
return0;
}
12.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
#include<>
intmain()
{
for(inta=1;a<=9;a++)
{
for(intb=1;b<=a;b++)
{
printf("%d",b);
}
printf("\n");
}
return0;
}
13.求2+4+6+……+98+100的和,用多种for表达式来完成。
#include<>
intmain()
{
intsum=0;
for(inta=2;a<=100;a+=2)
{
sum+=a;
}
printf("%d",sum);
return0;
14.输入一行字符,统计它有多少个字母
#include<>
intmain()
{
intcount=0;
chars[255];
scanf("%s",s);
for(inti=0;i<255;i++)
{
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
count++;
}
}
printf("%d",count);
return0;
}
第4章分支程序设计
0时结束。
1.输入若干整数给x,使用if语句输出x的绝对值,当输入#include<>
intmain()
intx;
scanf("%d",&x);
for(;x;scanf("%d",&x))
{
if(x>0)
{
printf("%d\n",x);
}
else
{
printf("%d\n",-x);
}
}
return0;
0时结束。
}
2.输入一批数,输出比相邻数大的数,当输入#include<>
intmain()
{
inta;
intb=0;
scanf("%d",&a);
b=a;
for(;a;scanf("%d",&a))
{
if(a>b)
printf("%d\t",a);
b=a;
}
return0;
}
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
#include<>
intmain()
{
charc;
while((c=getchar())!
='\n')
{
if(c>='A'&&c<='Z')
{
c+=32;
}
putchar(c);
}
return0;
}
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
#include<>
intmain()
charc;
intdx=0,xx=0,sz=0,qt=0;
while((c=getchar())!
='\n')
{
if(c>='A'&&c<='Z')
{
dx++;
}
elseif(c>='a'&&c<='z')
{
xx++;
}
elseif(c>='0'&&c<='9')
{
sz++;
}
else
{
qt++;
}
}
printf("包含大写字母%d个,小写字母%d个,数字%d个,其他字符%d个.\n",dx,xx,sz,qt);
return0;
}
5.编写程序,计算分段函数:
x5
x1
y
2x1
x10
3
x10
x10
#include<>
intmain()
{
doublex,y;
scanf("%f",&x);
if(x<=1)
{
y=x+5;
}
elseif(x<10)
{
y=2*x;
}
else
{
y=3/(x-10);
}
printf("%f",y);
return0;
}
6•根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
百分制
五分制
90~100
5
80~89
4
70~79
3
60~69
2
<60
1
#include<>
intmain()
{
inta;
scanf("%d",&a);
if(a>90)
{
printf("5\n");
}
elseif(a>80)
{
printf("4\n");
}
elseif(a>70)
{
printf("3\n");
}
elseif(a>60)
{
printf("2\n");
else
{
printf("1\n");
}
return0;
}
7、用switch完成:
读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入
2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
#include<>
#include<>
intmain()
{
inta,b;
scanf("%d,%d",&a,&b);
switch(a)
{
case1:
printf("y=sin(x)=%f",sin(b));break;
case2:
printf("y=cos(x)=%f",cos(b));break;
case3:
printf("y=tan(x)=%f",tan(b));break;
default:
printf("error");break;
}
return0;
}
8、用switch完成:
输入星期1到星期5,输出它们对应的颜色
星期1:
blue
星期2:
red
星期3:
white
星期4:
yellow
星期5:
green
#include<>
intmain()
{
inta;
scanf("%d",&a);
switch(a)
{
case1:
printf("星期一:
blue'n");break;
case2:
printf("星期二:
red\n");break;
case3:
printf("星期三:
white\n");break;
case4:
printf("星期四:
yellow\n");break;
case5:
printf(”星期五:
green\n");break;
default:
printf("error\n");break;
}
return0;
}
9、用switch完成:
从键盘输入AB、CD四个等级中的一个,转化输出
等级
输出
A
优秀
B
良好
C
中等
D
及格
E
不及格
#include<>
intmain()
{
chara;
scanf("%s",&a);
switch(a)
优秀\n”);break;良好\n”);break;中等\n”);break;及格\n”);break;不及格\n");break;
{
case'A':
printf("
case'B':
printf("
caseC:
printf("
case'D':
printf("
case'E':
printf("
default:
printf("error\n");break;
}
return0;
}
第5章数组及其应用
,找出最大和最小
1.从键盘输入12个数,分别为:
900,2,3,58,34,76,87,72,90,20,78,30
数。
#include<>intmain()
inta[12];
for(inti=0;i<12;i++)
{
scanf("%d",&a[i]);
}
intmax=a[0],min=a[0];
for(intj=1;j<12;j++)
{
if(a[j]>max)
{
max=a[j];
}
if(a[j] { min=a[j]; } } printf("最大值为%d,最小值为%d\n",max,min);return0; 中,找出偶数。 } 2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900} #include<> #defineSIZE100 intmain() { inta[SIZE]={2,3,20,58,72,76,78,87,90,900}; for(inti=0;i<10;i++) { if(a[i]%2==0) { printf("%d\t",a[i]); } } return0; } 3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然 后进行删除。 #include<> #defineSIZE11 #defineFOUND87 intmain() { inta[SIZE]={2,3,20,58,72,76,78,87,90,900};intlow=0,high=SIZE-1,mid; mid=(low+high)/2; while(low { if(a[mid] { low=mid; mid=(high+low)/2; elseif(a[mid]>FOUND) { high=mid; mid=(high+low)/2; } else break; } for(intj=mid;j<9;j++) { a[j]=a[j+1]; } return0; } 第6章函数及其应用 练习与实践 一、阅读程序,写出程序运行的结果。 1.写出以下程序的执行结果。 #include<> floataver(inta[]) { intk,sum=0; floatave; for(k=0;k<10;k++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 作业 答案 带原题