《程序设计基础(C)》作业第1章C语言的基本构成一、选择题1.( A )是构成C语言程序的基本单位。
(A)函数(B)过程(C)子程序(D)文件2.(D )是C语言提供的合法的数据类型关键字。
(A)Float (B)signed(C)integer (D)Char3.以下选项中不合法的用户标识符是( C )。
(A)abc.c (B)file(C)Main (D)PRINTF4.以下选项中不合法的用户标识符是(C )。
(A)l23 (B)printf(C)A$(D)Dim5.合法的C语言长整型常数是( B )。
(A)0L (B)5712700(C)0.054838743 (D)2.1869e106.C语言中,要求运算数必须是整型的运算符是( B )。
(A)% (B) /(C)< (D)!7.以下选项中正确的整型常量是( A )。
(A)12. (B)-20(C)l,000 (D)04588.以下选项中不正确的实型常量是( D )。
(A)2.607E-1 (B)0.8103e2.(C)77.77 (D)456e-29.C语言中运算对象必需是整型的运算符是( B )。
(A) \ (B) +(C) * (D) %二、程序调试题1.编辑、调试以下程序步骤1:在Visual C++环境下新建文件可用[开始]→[程序]→[Microsoft Visual C++6.0] →[Microsoft Visual C++6.0] →[文件] →[新建]→[文件] →[C++ Sourse File],输入文件请思考文件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,源程序代码为:c=a&&b;return c;}步骤4:[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名ex1-2-3.c,源程序代码为:int or(int a,int b){int c;c=a||b;return c;}步骤5:点击编译图标,编译程序1-2.c步骤4:点击执行图标,执行程序1-2.c ,当程序运行时,键盘输入20 40,按回车。
20 4020 && 40=120 || 40=1您可以输入其它的整数,观察程序的执行结果。
第2章输入输出程序设计1.用printf输出一个中空的五角星。
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
3.从键盘输入十六进制整数,转化为八进制数输出。
4.只定义两个整型数据并赋值,实现两个整型数的互换。
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
7.以下程序输出结果是()。
#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章循环程序设计1.执行语句for(i=0;i++<5;);后,变量i 的值是()。
(A)6 (B)5(C)4 (D)02.若int i=0;下列语句计算1+2+…+10的是()。
(A)while(s+=i);(B)for(;i<=10;i++,s+=i)(C)for(;i<=10;s+=i,i++)(D)for(;i<9;i++,s+=i)3.若int i,x; 则语句 for(i=x=0;i<9;i+=++x);的循环体要执行()次。
10.以下不是死循环的语句是()。
(A)for(;;x++);(B)while(1){x++};(C)do{i++;}while(1)(D)for(x=-10;x++;)4.以下for语句的循环次数是多少?int i,j=3;for(;i=j;i--,j--) printf("%d",i);5.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:for(int i=0;i< ; )printf("%d", )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);}(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);}(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);}10.输入一个基数,例如输入9,输出为:求1*3*……*9的值。
输出为:1*3*5*7*9=94511.输入一个5~10之间的整数n ,求1!+2!+3!+...+n!。
例如输入5,输出为:1!+2!+3!+ (5)=15312.在屏幕上输出以下内容11212312341234512345612345671234567812345678913.求2+4+6+……+98+100的和,用多种for 表达式来完成。
14. 输入一行字符,统计它有多少个字母?第4章 分支程序设计1.输入若干整数给x ,使用if 语句输出x 的绝对值,当输入0时结束。
2.输入一批数,输出比相邻数大的数,当输入0时结束。
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
5.编写程序,计算分段函数:10101110325><<≤⎪⎪⎩⎪⎪⎨⎧-+=x x x x x x y67、用switch完成:读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
8、用switch完成:输入星期1 到星期5,输出它们对应的颜色星期1:blue星期2:red星期3:white星期4:yellow星期5:green9、用switch完成:从键盘输入A、B、C、D四个等级中的一个,转化输出第5章数组及其应用1.从键盘输入12个数,分别为:900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。
2.采用遍历查找,在数组a[SIZE]={2, 3,20,58, 72, 76,78,87,90,900}中,找出偶数。
3.采用折半查找,在数组a[SIZE]={2, 3,20,58, 72, 76,78,87,90,900}中,找到87,然后进行删除。
第6章函数及其应用练习与实践一、阅读程序,写出程序运行的结果。
1.写出以下程序的执行结果。
#include<stdio.h>float aver(int a[]){int k,sum=0;float ave;for(k=0;k<10;k++)sum+=*(a+k);ave=(float)sum/10;return (ave);}int main( ){static b[]={78,89,98,76,78,45,88,81,92,85};ave=aver(b);printf("ave=%f\n",ave);}提示:数组b的首地址传递给形参a,*(a+k)就是数组元素b[k].2.阅读程序,写出程序的执行结果。
#include<stdio.h>void abc( char str[] ){int a, b ;for(a = b = 0 ; str[a]!='\0'; a++ )if(str[a]!= 'c’)str[b++] = str[a];str[b]='\0';}int main( ){char str[] ="abcdef" ;abc(str);printf("str[ ]=%s " , str );return 0;}提示:数组str的首地址传递给形参str,str[a]就是实参中的数组元素str[a],当数组元素不为’c’时进行复制。