《程序设计基础(C)》作业第1章C语言的基本构成程序调试题1.编辑、调试以下程序步骤1:在Visual C++环境下新建文件可用[开始]→[程序]→[Microsoft Visual C++6.0] →[Microsoft Visual C++6.0] →[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名ex1-1.c,程序代码如下:请思考文件ex1-1.c由几个函数构成?调用了那几个系统函数?此程序中用到了哪几个保留字?哪几个用户自定义标识符?步骤3:编译并运行程序,程序运行时输入两个整数,20 40 ,观察程序运行的结果。
2.编辑、调试以下程序步骤1:在Visual C++环境下新建文件可用[开始]→[程序]→[Microsoft Visual C++6.0] →[Microsoft Visual C++6.0] →[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名ex1-2.c步骤3:[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名ex1-2-2.c,源程序代码为:步骤5:点击编译图标,编译程序1-2.c步骤4:点击执行图标,执行程序1-2.c ,当程序运行时,键盘输入20 40,按回车。
20 4020 && 40=120 || 40=1您可以输入其它的整数,观察程序的执行结果。
第2章输入输出程序设计1.用printf输出一个中空的五角星。
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
#include<stdio.h>int main(){char string[80];printf("您是一个学生吗:\n");scanf("%s",string);printf("%s\n",string);retu3.从键盘输入十六进制整数,转化为八进制数输出。
4.只定义两个整型数据并赋值,实现两个整型数的互换。
#include<stdio.h>void change(int *a,int *b){*a^=*b;*b^=*a;*a^=*b;}int main(){int a=3,b=4;change(&a,&b);printf("a=%d b=%d\n",a,b);return 0;}5.从键盘上输入一个整数,分别输出8、16进制数的程序。
#include <stdio.h>void main(){char s[20];int i;int flag;printf("please input a number\n");while (1){flag = 0;scanf("%s", s);if (s[0] != '-' && (s[0] < '0' || s[0] > '9')){printf("input error!\nplease input again\n");continue;}for (i = 1; i != strlen(s); ++i){if ((s[i] <= '0' || s[i] >= '9')){printf("input error!\nplease input again\n");flag = 1;break;}}if (flag == 0){break;}}printf("八进制:%o\n十六进制:%x\n", atoi(s), atoi(s));}6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
main(){int a,b;scanf("d%",&a);b=a%10;printf("个位数是:d%\n",b);b=a%100/10;printf("十位数是:%d\n",b);b=a%1000/100;printf("百位数是:d%\n",d)}7.以下程序输出结果是(8 9 )。
#include<stdio.h>void main(){int i=010,j=10;printf("%d,%d\n",++i,j-- );}8.运行程序,屏幕提示“您是一个学生吗”,您输入‟y‟或‟n‟进行回答,屏幕输出您的选项。
9.从键盘输入一个角度x,求10*sin(x)的值。
第3章循环程序设计4.以下for语句的循环次数是多少?int i,j=3;for(;i=j;i--,j--) printf("%d",i);5.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:for(int i=0;i< 6 ; i++ )printf("%d", h[i][i] )6.写出以下程序运行的结果,此程序实现了什么功能?#include<stdio.h>void main(){ int a[10]={2,4,0,-5,10,6,-8,9,6,7};int i, count=0;for(i=0;i<10;i++)if(a[i]==0) count++;else continue;printf("%d\n ", count);}7.写出以下程序的功能。
#include<stdio.h>void main(){int a[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;}}8.写出以下程序运行后的输出结果。
#include<stdio.h>void main(){int i,j;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");}}9.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
(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;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);}#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;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);}10.输入一个基数,例如输入9,输出为:求1*3*……*9的值。
输出为:1*3*5*7*9=945 #include<stdio.h>int main(){int i,n,sum;sum=1;printf("input n=");scanf("%d",&n);for(i=1;i<=n;i+=2)sum*=i;printf("结果:%d\n",sum); return 0;}11.输入一个5~10之间的整数n,求1!+2!+3!+…+n!。
例如输入5,输出为:1!+2!+3!+…+5!=153#include "stdio.h"main(){int i;ng term=1,sum=0;for(i=1;i<=10;i++){term*=i; sum+=term;}printf("1!+2!+^+10!=%ld\ d\n",sum);}12.在屏幕上输出以下内容112123123412345123456123456712345678123456789#include<stdio.h>main(){printf(" 1 \n");printf(" 12 \n");printf(" 123 \n");printf(" 1234 \n");printf(" 12345 \n");printf(" 123456 \n");printf(" 1234567 \n");printf(" 12345678 \n");printf(" 123456789 \n");}12.求2+4+6+……+98+100的和,用多种for表达式来完成。
#include "stdio.h"main(){int i,sum=0;for(i=2;i<=100;i+=2) sum+=i;printf("sum=%d\n",sum);}14.输入一行字符,统计它有多少个字母?#include<stdio.h>int main(){int n=0;char ch;printf("请输入一串字符:\n");for(;(ch=getchar())!='\n' ;){if('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z')n++;}printf("字母个数%d\n",n); return 0;}第4章分支程序设计1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。