程序的设计基础(C)离线作业_答案_2017_浙江大学远程教育学院
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%o\n",shiliu);
}
4.只定义两个整型数据并赋值,实现两个整型数的互换。
#include<stdio.h>
void main()
{
int a,b,swap;
scanf("%d,%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
swap=a;
a=b;
b=swap;
for语句的循环次数为3次
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(int i=0;i<6; i++)
printf("%d",h[i][j])
3.写出以下程序运行的结果,此程序实现了什么功能?
#include<stdio.h>
void main()
{ int a[10]={2,4,0,-5,10,6,-8,9,6,7};
(1)
#include<stdio.h>
void main( )
{
int i,s;
i=1; s=0;
while(i<=100);
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
}
改正后:
#include<stdio.h>
void main( )
{
int i,s;
}
改正后:
#include<stdio.h>
void main( )
{
int i,s;
i=1;
s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
}
(3)
#include<stdio.h>
void main( )
{
int i=1,s;
if(s>='A' && s<='Z')
s+=32;
putchar(s);
}
}
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
#include<stdio.h>
void main() {
char s;
int xiaoxie_char=0,daxie_char=0,shuz_char=0,others=0;
for (k=0;k<10/2;k++)
{
tmp=a[k];
a[k]=a[10-k-1];
a[10-k-1]=tmp;
}
}
把数组a里的元素位置倒置,第一个放在最后一个,第二个放在倒数第二个位置。
5.写出以下程序运行后的输出结果。
#include<stdio.h>
void main()
{
int i,j;
printf("%d,%d\n",++i,j-- );
}
程序输出结果为9,10
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
#include<stdio.h>
void main()
{
char q;
printf("Are you a student ? y/n\n");
int main()
{
int i,j,num,sum=0,jiec=1; //jiec存放单个阶乘的值,sum存放所以的阶乘和do
do{
printf("请输入一个5到10之间的整数:");
scanf("%d",&num);
}while(num< 5 || num> 10);
for(i=1;i<=num;i++) {
for(j=1;j<=i;j++) {
jiec=jiec*j;
}
sum=sum+jiec;
jiec=1;
}
printf("\n1!+2!+3!+...+%d!=%d",num,sum);
}
9.在屏幕上输出以下容
1
12
123
1234
12345
123456
1234567
12345678
123456789
else
if(x<0)
printf("%d的绝对值为:%d\n",x,-x);
}while(x!=0);
}
2.输入一批数,输出比相邻数大的数,当输入0时结束。
#include<stdio.h>
void main() {
int x =0,last=0;
while(1) {
printf("请输入x值:");
#include<stdio.h> void main () {
int i,sum=0;
for(i=2;i<101;i=i+2)
sum=sum+i;
printf("sum is %d\n",sum);
}
或者
#include<stdio.h>
void main (){
int i,sum=0;
for(i=2;i<101;i++){
while(i<=100) ;
{
s=s+i;
i++;
}
printf(“1+2+3+….+99+100=%d\n”,s);
}
改正后:
#include<stdio.h>
void main( )
{
int i=1,s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
if(i%2==0)
sum=sum+i;
}
printf("sum is %d\n",sum);
}
11.输入一行字符,统计它有多少个字母?
#include<stdio.h>
void main() {
char ccc; int num=0;
while((ccc=getchar())!='\n') {
if((ccc >= 'a' && ccc <= 'z') || (ccc >= 'A' && ccc <= 'Z'))
int i, count=0;
for(i=0;i<10;i++)
if(a[i]==0) count++;
else continue;
printf("%d\n",count);
}
统计数组a中元素为0的元素个数。
4.写出以下程序的功能。
#include<stdio.h>
void main()
{
int a[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;
}
7.输入一个基数,例如输入9,输出为:求1*3*……*9的值。输出为:1*3*5*7*9=945
#include<stdio.h>
int main()
{
int jishu,sum=1,i;
do {
printf("请输入一个奇数:");
scanf("%d",&jishu);
}while(jishu%2==0);
大学远程教育学院
《程序设计基础(C)》课程作业
:
袁洋
学号:
2
年级:
2017春
学习中心:
紫金港校区
—————————————————————————————
第1章
由add、main、scanf、printf函数组成,
调用了scanf、printf两个系统函数。
保留字:int、return。
自定义标识符:add、a、b、c、x、y、z。
printf("a=%d,b=%d\n",a,b);
}
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
printf("%o %x\n",a,a);
}
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
printf(" * * \n");
printf(" * *\n");
printf(" * * * \n");
printf(" * * * * \n");
printf(" * * * * \n");
printf(" * * * * \n");
}
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
scanf("%c",&q);
if(q=='y' || q=='Y')
printf("Good good study!\n");
else if(q=='n' || q=='N')
printf("Work hard!\n");
}
9.从键盘输入一个角度x,求10*sin(x)的值。
#include<stdio.h>
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
#include<stdio.h>
void main()
{
printf(" * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * * * * * * *\n"); printf(" * * \n");
printf("输入的整数为:%d,百位为:%d,十位为:%d,个位为:%d。\n",integer,integer/100,integer%100/10,integer%100%10);
}
7.以下程序输出结果是()。
#include<stdio.h>
void main()
{
int i=010,j=10;
scanf("%d", &x);
if(x==0){
break;
}
if ( x>last) {
printf("x比相邻数大:%d",x);
}
last = x;
}
}
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
#include<stdio.h>
void main() {
char s;
while((s=getchar())!='\n') {
#include<math.h>
int main()
{
float x;
scanf("%f",&x);
printf("sum is %f\n",10*sin(x));
}
第3章 循环程序设计
1.以下for语句的循环次数是多少?
int i,j=3;
for(;i=j;i--,j--) printf("%d",i);
#include<stdio.h>
void main()
{
int integer;
do
{
printf("请输入一个三个数:");
scanf("%d",&integer);
if (integer<100 || integer >=1000)
printf("请重新输入,\n");
}while(integer<100 || integer >=1000);
i=1; s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
}
(2)
#include<stdio.h>
void main( )
{
int i,s;
i=1;
s=0;
while(i<=100)
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
num++;
}
printf("num is %d\n",num);
}
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。
#include<stdio.h>
void main () {
int x;
do {
scanf("%d",&x);
if(x>0)
printf("%d的绝对值为:%d\n",x,x);
for(i=1;i<=jishu;i=i+2) {
sum=sum*i;
}
printf("\n1*3*5*...*%d= %d\n",jishu,sum);
}
8.输入一个5~10之间的整数n,求1!+2!+3!+…+n!。例如输入5,输出为:1!+2!+3!+…+5!=153
#include<stdio.h>
for(i=0;i<6;i++)
{
for(j=0;j<i;j++)
printf(" ");
for(j=0;j<2*(5-i)-1;j++)
printf("*");
printf("\n");
}
}
*********
*******
*****
***
*
6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
#include<stdio.h> int main () {
char i,j;
for(i=0;i<9;i++) {
for(j=1;j<=i+1;j++) {
printf("%d",j);
}
putchar('\n');
}
return 0;
}
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
#include<stdio.h>
void main()
{
char charshuz[20];
ห้องสมุดไป่ตู้puts(gets(charshuz));
}
3.从键盘输入十六进制整数,转化为八进制数输出。
#include<stdio.h>
void main(){
int shiliu;
scanf("%x",&shiliu);
while((s=getchar())!='\n') {
if(s>='A' && s<='Z')
daxie_char++;
else if(s>='a' && s<='z')
xiaoxie_char++;
}
4.只定义两个整型数据并赋值,实现两个整型数的互换。
#include<stdio.h>
void main()
{
int a,b,swap;
scanf("%d,%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
swap=a;
a=b;
b=swap;
for语句的循环次数为3次
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(int i=0;i<6; i++)
printf("%d",h[i][j])
3.写出以下程序运行的结果,此程序实现了什么功能?
#include<stdio.h>
void main()
{ int a[10]={2,4,0,-5,10,6,-8,9,6,7};
(1)
#include<stdio.h>
void main( )
{
int i,s;
i=1; s=0;
while(i<=100);
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
}
改正后:
#include<stdio.h>
void main( )
{
int i,s;
}
改正后:
#include<stdio.h>
void main( )
{
int i,s;
i=1;
s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
}
(3)
#include<stdio.h>
void main( )
{
int i=1,s;
if(s>='A' && s<='Z')
s+=32;
putchar(s);
}
}
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
#include<stdio.h>
void main() {
char s;
int xiaoxie_char=0,daxie_char=0,shuz_char=0,others=0;
for (k=0;k<10/2;k++)
{
tmp=a[k];
a[k]=a[10-k-1];
a[10-k-1]=tmp;
}
}
把数组a里的元素位置倒置,第一个放在最后一个,第二个放在倒数第二个位置。
5.写出以下程序运行后的输出结果。
#include<stdio.h>
void main()
{
int i,j;
printf("%d,%d\n",++i,j-- );
}
程序输出结果为9,10
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
#include<stdio.h>
void main()
{
char q;
printf("Are you a student ? y/n\n");
int main()
{
int i,j,num,sum=0,jiec=1; //jiec存放单个阶乘的值,sum存放所以的阶乘和do
do{
printf("请输入一个5到10之间的整数:");
scanf("%d",&num);
}while(num< 5 || num> 10);
for(i=1;i<=num;i++) {
for(j=1;j<=i;j++) {
jiec=jiec*j;
}
sum=sum+jiec;
jiec=1;
}
printf("\n1!+2!+3!+...+%d!=%d",num,sum);
}
9.在屏幕上输出以下容
1
12
123
1234
12345
123456
1234567
12345678
123456789
else
if(x<0)
printf("%d的绝对值为:%d\n",x,-x);
}while(x!=0);
}
2.输入一批数,输出比相邻数大的数,当输入0时结束。
#include<stdio.h>
void main() {
int x =0,last=0;
while(1) {
printf("请输入x值:");
#include<stdio.h> void main () {
int i,sum=0;
for(i=2;i<101;i=i+2)
sum=sum+i;
printf("sum is %d\n",sum);
}
或者
#include<stdio.h>
void main (){
int i,sum=0;
for(i=2;i<101;i++){
while(i<=100) ;
{
s=s+i;
i++;
}
printf(“1+2+3+….+99+100=%d\n”,s);
}
改正后:
#include<stdio.h>
void main( )
{
int i=1,s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
if(i%2==0)
sum=sum+i;
}
printf("sum is %d\n",sum);
}
11.输入一行字符,统计它有多少个字母?
#include<stdio.h>
void main() {
char ccc; int num=0;
while((ccc=getchar())!='\n') {
if((ccc >= 'a' && ccc <= 'z') || (ccc >= 'A' && ccc <= 'Z'))
int i, count=0;
for(i=0;i<10;i++)
if(a[i]==0) count++;
else continue;
printf("%d\n",count);
}
统计数组a中元素为0的元素个数。
4.写出以下程序的功能。
#include<stdio.h>
void main()
{
int a[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;
}
7.输入一个基数,例如输入9,输出为:求1*3*……*9的值。输出为:1*3*5*7*9=945
#include<stdio.h>
int main()
{
int jishu,sum=1,i;
do {
printf("请输入一个奇数:");
scanf("%d",&jishu);
}while(jishu%2==0);
大学远程教育学院
《程序设计基础(C)》课程作业
:
袁洋
学号:
2
年级:
2017春
学习中心:
紫金港校区
—————————————————————————————
第1章
由add、main、scanf、printf函数组成,
调用了scanf、printf两个系统函数。
保留字:int、return。
自定义标识符:add、a、b、c、x、y、z。
printf("a=%d,b=%d\n",a,b);
}
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
printf("%o %x\n",a,a);
}
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
printf(" * * \n");
printf(" * *\n");
printf(" * * * \n");
printf(" * * * * \n");
printf(" * * * * \n");
printf(" * * * * \n");
}
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
scanf("%c",&q);
if(q=='y' || q=='Y')
printf("Good good study!\n");
else if(q=='n' || q=='N')
printf("Work hard!\n");
}
9.从键盘输入一个角度x,求10*sin(x)的值。
#include<stdio.h>
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
#include<stdio.h>
void main()
{
printf(" * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * * * * * * *\n"); printf(" * * \n");
printf("输入的整数为:%d,百位为:%d,十位为:%d,个位为:%d。\n",integer,integer/100,integer%100/10,integer%100%10);
}
7.以下程序输出结果是()。
#include<stdio.h>
void main()
{
int i=010,j=10;
scanf("%d", &x);
if(x==0){
break;
}
if ( x>last) {
printf("x比相邻数大:%d",x);
}
last = x;
}
}
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
#include<stdio.h>
void main() {
char s;
while((s=getchar())!='\n') {
#include<math.h>
int main()
{
float x;
scanf("%f",&x);
printf("sum is %f\n",10*sin(x));
}
第3章 循环程序设计
1.以下for语句的循环次数是多少?
int i,j=3;
for(;i=j;i--,j--) printf("%d",i);
#include<stdio.h>
void main()
{
int integer;
do
{
printf("请输入一个三个数:");
scanf("%d",&integer);
if (integer<100 || integer >=1000)
printf("请重新输入,\n");
}while(integer<100 || integer >=1000);
i=1; s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+2+3+…-.+99+100=%d\n",s);
}
(2)
#include<stdio.h>
void main( )
{
int i,s;
i=1;
s=0;
while(i<=100)
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
num++;
}
printf("num is %d\n",num);
}
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。
#include<stdio.h>
void main () {
int x;
do {
scanf("%d",&x);
if(x>0)
printf("%d的绝对值为:%d\n",x,x);
for(i=1;i<=jishu;i=i+2) {
sum=sum*i;
}
printf("\n1*3*5*...*%d= %d\n",jishu,sum);
}
8.输入一个5~10之间的整数n,求1!+2!+3!+…+n!。例如输入5,输出为:1!+2!+3!+…+5!=153
#include<stdio.h>
for(i=0;i<6;i++)
{
for(j=0;j<i;j++)
printf(" ");
for(j=0;j<2*(5-i)-1;j++)
printf("*");
printf("\n");
}
}
*********
*******
*****
***
*
6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
#include<stdio.h> int main () {
char i,j;
for(i=0;i<9;i++) {
for(j=1;j<=i+1;j++) {
printf("%d",j);
}
putchar('\n');
}
return 0;
}
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
#include<stdio.h>
void main()
{
char charshuz[20];
ห้องสมุดไป่ตู้puts(gets(charshuz));
}
3.从键盘输入十六进制整数,转化为八进制数输出。
#include<stdio.h>
void main(){
int shiliu;
scanf("%x",&shiliu);
while((s=getchar())!='\n') {
if(s>='A' && s<='Z')
daxie_char++;
else if(s>='a' && s<='z')
xiaoxie_char++;