C语言程序设计-作业集.doc_第1页
C语言程序设计-作业集.doc_第2页
C语言程序设计-作业集.doc_第3页
C语言程序设计-作业集.doc_第4页
C语言程序设计-作业集.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录作业一2作业二4作业三9作业四13作业五19作业六27作业七36作业八45作业九47作业十51作业十一55作业一一、查找相关资料,回答下列问题1什么是计算机程序?2什么是程序设计语言?程序设计语言如何分类?3低级语言和高级语言的特点是什么?4C语言发展变化的过程。(按照时间的先后顺序)5C语言具有哪些特点?6C语言的开发工具有哪些?哪些工具比较常用?7C语言有哪些方面的应用?8调试C程序,需要经过几个步骤?二、填空题1C程序是由( )构成的,一个C程序中至少包含( ) 。因此,( ) 是C程序的基本单位。2C程序注释是由( ) 和( ) 所界定的文字信息组成的。1、语言是通过_来进行输入和输出的。(输入和输出函数)2、语言源程序文件的后缀是_,经过编译后生成文件的后缀是_,经过链接后生成文件的后缀是_。3、算机最终处理的所有数据项最终都是()和() 5、一个C语言程序总是从()开始执行的。6、C语言每个语句都以()结束一、 简答1. 写出一个C程序的构成2. C语言以函数为程序的基本单位,有什么好处?三、按要求编写程序1实现一个输出Hello world !的程序。打开Win-TC开发环境输入下列代码:#include /(3)main () /(1)printf(“Hello world!n”); /(2)编译运行程序,程序的运行结果:_请说出上述标识的语句的含义: (1)_(2)_(3)_2编写一个C语言程序,实现在屏幕上输出“C语言是程序设计的基础”,如果遇到问题进行调试,将程序写在下面。3打开Win-TC开发环境,输入下列代码并编译运行程序,并将结果描述出来1、一个C程序,输出一下信息*Very Good!*作业二一、回答下列问题1在C语言中,标识符的构成规则是什么?2什么是关键字、特定字和用户自定义字?3对变量进行“先定义后使用”的原因是什么?4字符型常量和字符串型常量有什么区别?5为什么C语言的字符型可以进行数值运算?6什么是自动转换和强制转换?7简述a和“a”的区别。二、程序阅读1.写出以下程序运行的结果。main ( )char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctc%ctabcn”,c1,c2,c3);printf(“tb%c %c”,c4,c5);2.写出以下程序的输出结果。main ( ) int a=12345;float b=-198.345, c=6.5;printf(“a=%4d,b=%-10.2e,c=%6.2fn”,a,b,c);3.写出以下程序的输出结果。main ( ) int x=-2345;float y=-12.3;printf(“%6D,%06.2F”,x,y);4. 写出以下程序的输出结果。main ( ) int a=252;printf(“a=%o a=%#on”,a,a);printf(“a=%x a=%#xn”,a,a);5. 写出以下程序的输出结果。main ( ) int x=12; double a=3.1415926;printf(“%6d#,%-6d#n”,x,x);printf(“%14.101f#n”,a);三、按要求编写程序1编写程序,使用getchar()函数接收一个字符,用printf()函数显示;使用scanf()函数接收一个字符,用putchar()函数显示。2已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。4编写程序,用%c输出字符变量的方法输出下面的图案。 * * * *5编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf函数输出这两个字符。并思考以下问题:(1)变量c1,c2应定义为字符型或整型?或两者皆可?(2)要求输出C1和C2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符型变量是否在任何情况下都可以互相替代?如:char c1,c2 与 int c1,c2是否无条件地等价?作业三一、填空题1在C语言中,不同运算符之间运算次序存在 的区别,同一运算符之间运算次序存在 的规则。2设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为 _。3设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 。4设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为 。5已知:char a=a,b=b,c=c,i;则表达式i=a+b+c的值为 。二、回答下面的问题1华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c, F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?三、程序阅读1写出以下程序运行的结果。main() char a,b; a=a; b=b; a=a-32; b=b-32; printf(%c,%c,a,b);2写出以下程序运行的结果。main ( )int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);3写出以下程序的输出结果。main ( ) int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);四、将正确的结果填入空白处1.下列程序的输出结果是16.00,请填(1)空使程序完整。main ( ) int a=9,b=2;float x= 1 , y=1.1 , z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);五、按要求编写程序1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。2.已知int x=10,y=12;写出将x和y的值互相交换的表达式。3.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1=a or 97(ASCII)c2=b or 98(ASCII)4.编写程序,求一个圆的面积,圆的半径要求从键盘输入。要求定义符号常量pi=3.1415926。5.编写程序,从键盘输入三个数字,求它们的和。6假设港币与人民币的汇率是1港币兑换1.0607元人民币,编写程序输入人民币的钱数,输出能兑换的港币金额。作业四一、回答下列问题1.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?2.请将以下语句改成switch语句。if (s0) & (s=3) & (s1) & (s8) x=3;else x=1;else x=0;二填空题1.C语言提供6种关系运算符,按优先级高低它们分别是_,_,_,_,_,_等。2.C语言提供三种逻辑运算符,按优先级高低它们分别是_,_,_。3.设a=3,b=4,c=5,写出下面各逻辑表达式的值。表达式 表达式运算后的值a+bc & b=c _!(ab) & !c | 1 _!(a+b) + c 1 & b + c/2 _4.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式 。5.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式: 。6.已知A=7.5,B=2,C=3.6,表达式AB & CA | AB的值是 。7.有int x=3,y=-4,z=5;则表达式(x&y)=(x|z)的值为 。8.若有x=1,y=2,z=3,则表达式(x0) case 1: switch (b0) s=a+b; if (a0) if (c0) w=a-b; else t=c;printf(”%d %d %d”, s,w,t);4写出以下程序的运行结果。 main() int a=0,i; scanf(%d,&i); switch(i) case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; printf(%dn,a); 四、程序判断1.下面程序将输入的大写字母改写成小写字母输出,其他字符不变;请判断下面程序的正误,如果错误请改正过来。main ( ) char c;c = getchar ( ) ;c = (c=A | | c=Z) ? c-32 : c+32 ;printf(“%c”,c);2.下面程序输入两个运算数x,y和一个运算符号op,然后输出该运算结果的值,例如输入3+5得到结果8;请判断下面程序的正误,如果错误请改正过来。main ( )float x,y,r;char op ;scanf(“%f%c%f”,&x,&op,&y);switch (op) case + : r=x+y ;case - : r=x+y ;case * : r=x+y ;case / : r=x+y ;printf(“%f”,r);五、程序填空1.以下程序输出x,y,z三个数中的最小值,请填(2)空使程序完整。main ( ) int x=4,y=5,z=8 ;int u,v;u = xy ? 【1 】 ;v = uz ? 【2 】 ;printf (“%d”,v);六、按要求编写程序1.有三个整数a,b,c,由键盘输入,输出其中最大的数。2.编程输入整数a和b,若a大于100,则输出 百位以上的数字,否则输出两数之和。3.给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。4.提高题:给一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数是321,应输出123。作业五一、程序阅读1.写出下面程序运行的结果。main ( ) int x,i ;for (i=1 ; i=100 ; i+) x=i;if (+x%2=0)if (+x%3=0)if(+x%7=0)printf(“%d ”,x) ;2.写出下面程序运行的结果。main ( ) int i,b,k=0 ;for (i=1; i=5 ; i+) b=i%2;while (b-=0) k+ ;printf(“%d,%d”,k,b);3.写出下面程序运行的结果。main ( ) int a,b;for (a=1,b=1 ; a=20) break;if (b%3=1) b+=3 ; continue ; b-=5;printf(“%dn”,a);4.写出下面程序运行的结果。main ( ) int k=1,n=263 ;do k*= n%10 ; n/=10 ; while (n) ;printf(“%dn”,k);5.写出下面程序运行的结果。main ( ) int i=5 ;do switch (i%2) case 4 : i- ; break ;case 6 : i- ; continue ;i- ; i- ;printf(“%d”,i);while (i0) ;6.写出下面程序运行的结果。main ( ) int i,j;for (i=0;i=0; j-) if (j+i)%2) j- ;printf(“%d,”,j);continue ; -i ;j- ;printf(“%d,”,j) ;7.写出下面程序运行的结果。main ( ) int a=10,y=0 ;do a+=2 ; y+=a ;if (y50) break ; while (a=14) ;printf(“a=%d y=%dn”,a,y) ;8.写出下面程序运行的结果。main ( ) int i,j,k=19;while (i=k-1) k-=3 ;if (k%5=0) i+ ; continue ; else if (k5) break ; i+;printf(“i=%d,k=%dn”,i,k);9.写出下面程序运行的结果。main ( ) int y=2,a=1;while (y-!=-1)do a*=y ;a+ ; while (y-) ;printf(“%d,%dn”,a,y);10.写出下面程序运行的结果。main ( ) int i,k=0;for (i=1; ; i+) k+ ;while (ki*i) k+ ; if (k%3=0) goto loop ;loop:printf(“%d,%dn”,i,k);二、填空题1.C语言三个循环语句分别是 语句, 语句和 语句。2.至少执行一次循环体的循环语句是 。3.循环功能最强的循环语句是 。4.程序段for (a=1,i=-1; -1i1; i+) a+ ; printf(“%2d”,a); ;printf(“%2d”,i) ;的运行结果是 。三、程序填空1.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。main ( ) int m,n,w;scanf(“%d,%d”,&m,&n);while (n) w=【m%n 】;m=【n 】;n=【w】;printf(“%d”,m);2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。main ( ) int n,k=1,s=0,m ;for (n=1 ; n=1) k*=m%10;s+=m%10;【m=m/10】;if (ks) printf(“%dd”,n);3.下面程序接受键盘上的输入,直到按键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。main ( ) char cx , front=0 ;while (【(cx=getchar() 】!=n) if (cx!= ) putchar(cx) ;if (cx= )if (【front!= 】)putchar(【 】)front=cx ;4.下面程序按公式 求和并输出结果,请填(3)空使程序完整。main ( ) 【int s=0 】;int k ;for (k=1 ; k=100 ; k+)s+=k ;for (k=1 ; k=50 ; k+)s+=k*k ; for (k=1 ; k=10 ; k+)s+=【k*k*k】;printf(“sum=【%d 】”,s);四、按要求编写程序1.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。2.某服装店经营套服,也单件出售。若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。3.某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的邮资:重量(千克) 收费标准(元)wei10 0.8010wei=20 0.7520wei=30 0.704.求1500内既能被7整除又能被9整除的数。作业六一、回答下列问题1在C语言中,函数定义和函数说明分别指什么?2在C语言中,函数是否允许嵌套定义?是否允许嵌套调用?3自动变量与内部静态变量有何共同之处?有何区别?4外变量与外部静态变量有何共同之处?有何区别?二、程序阅读1.写出下面程序的运行结果。func (int a,int b) static int m=0,i=2;i+=m+1;m=i+a+b;return (m);main ( ) int k=4,m=1,p1,p2;p1=func(k,m) ; p2=func(k,m) ;printf(“%d,%dn”,p1,p2) ;2.写出下面程序的运行结果。# define MAX 10int aMAX, i ;sub1 ( ) for (i=0; iMAX; i+) ai=i+i ;sub2 ( ) int aMAX, i ,max ;max=5;for (i=0; iMAX; i+) ai=i ;sub3 (int a ) int i ;for (i=0; iMAX; i+) printf(“%d ”,ai);printf(“n”);main ( ) sub1( ); sub3(a); sub2( ); sub3(a);3.若输入的值是125,写出下面程序的运行结果。#include fun (int n) int k,r ;for (k=2; k1) printf(“*”);r = n % k ;if (n!=1) printf(“%dn”,n); main ( ) int n ; scanf(“%d”,&n);printf(“%d=”,n);if (n0) printf(“-”);n = fabs(n); fun(n);4.写出下面程序的运行结果。int i=0;fun1 (int i) i = (i%i)*(i*i)/(2*i)+4 ;printf(“i=%dn”,i);return (i) ;fun2(int i) i = i=2 ? 5 : 0 ;return (i) ;main ( ) int i = 5 ;fun2(i/2) ; printf(“i=%dn”,i) ;fun2(i=i/2) ; printf(“i=%dn”,i) ;fun2(i/2) ; printf(“i=%dn”,i) ;fun1(i/2) ; printf(“i=%dn”,i) ;5.写出下面程序的功能。func (int n) int i,j,k;i=n/100; j=n/10-i*10 ; k=n%10 ;if (i*100+j*10+k) = i*i*i+j*j*j+k*k*k) return n ;return 0;main ( ) int n,k ;for (n=100; n 0 ) d = s%10;if (d%2=0) t=d* sl+ t;sl *= 10;s = 10;return (t);3.下面函数fun的功能是:统计字符串s中各元音字母(即A,E,I,O,U)的个数,注意:字母不分大,小写;判断下面程序的正误,如果错误请改正过来。fun (char s , int num5) int k; i=5;for (k=0; k= 0)numi+;4.下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;判断下面程序的正误,如果错误请改正过来。void fun (char s ) int i,j;for (i=0,j=0; si!=0; i+)if (si=0 & si=9)sj=si;sj=”0”;五、程序填空题1.下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回1,请填(2)空使程序完整。经典算法提示:折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。int search(int a10,int m) int x1=0,x2=0,mid ;while (x1=x2) mid = (x1+x2)/2;if (mamid) 【2 】;else return (mid) ;return (-1) ;2.del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。int del (int a10,int n,int x) int p=0,i ;while (x=ap&pn) 【1 】;for (i=p-1; in; i+) 【2 】;return (n-1) ;3.以下程序的功能是计算函数 ,请填(3)空使程序完整。# include 【1 】;main ( ) float x,y,z,f ;scanf(“%f,%f,%f”,&x,&y,&z);f = fun (【2 】);f += fun (【3 】);printf(“f=%d”,f);float fun(float a,float b) return (a/b) ;4.avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。float avg(float array10) int i ;float avgr , sum=0 ;for (i=1; 【1 】; i+)sum+=【2 】;avgr = sum / 10 ;【3 】;六、按要求编写程序1定义函数,返回两个数中较大的数,在主函数中通过调用该函数求3个数之中较大的数并输出。编写主函数调用该函数。2编写一个函数,输出如下图案。用参数n控制输出的行数,参数值的取值范围19,超过范围,函数不做任何输出,返回整数0,否则,输出图案后返回整数1。编写主函数调用该函数。作业七一、程序阅读1.写出下面程序的运行结果。main ( ) int a66,i,j ;for (i=1; i6 ; i+)for (j=1 ; j6 ; j+)aij=(i/j)*(j/i) ;for (i=1;i6 ; i+) for (j=1 ; j=bi) ci=ai-32 ;else ci=bi-32 ;i+;ci=0;puts(c);3.当运行下面程序时,从键盘上输入AabD,则写出下面程序的运行结果。main ( ) char s80;int i=0;gets(s);while (si!=0) if (si=a)si=z+a-si ;i+;puts(s);4.写出下面程序的运行结果。main ( ) int i,c;char s25=“8980”,”9198”;for (i=3; i=0 ; i-) c=s0i+s1i-2*0;s0j = c % 10 + 0 ;for (i=0; i=1; i+) puts(si);5.当运行下面程序时,从键盘上输入7 4 8 9 1 5,则写出下面程序的运行结果。main ( ) int a6,i,j,k,m;for (i=0 ; i=0; i-) k=a5;for (j=4; j=0; j-)aj+1=aj ;a0=k;for (m=0 ; m6 ; m+)printf(“%d ”,am);printf(“n”);二、程序判断1.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。main ( ) int a3=3*0 ;int i;for (i=0; i4; i+) scanf(“%d”,&ai);for (i=0; i4; i+) printf(“%d”,ai);2.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过来。main ( ) int a3=1,2,3 , i;scanf(“%d%d%d”,&a);for (i=0; i3; i+) printf(“%d”,ai);3.下面程序的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如,当s中的字符串为:“ABCDE”时则t中的字符串应为:“EDCBAABCDE”;判断下面程序的正误,如果错误请改正过来。main ( ) char s80,t200; int i,sl ;gets(s); sl = strlen(s);for (i=0; isl; i+) ti = ssl-i;for (i=0; isl; i+) tsl+i = si;puts(t);4.下面程序的功能是:将n各无序整数从小到大排序;判断下面程序的正误,如果错误请改正过来。main ( ) int a100, i, j, p, t, n=20 ;for (j = 0; jn ; j+) scanf(“%d”, &aj),for (j = 0;jn-1 ; j+) p = j;for ( i=j+1; iai) t=i;if (p!=j) t = aj; aj = ap; ap=t; for ( j = 0; jn ; j+ ) printf(“%d ”, &aj);5.下面程序的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2;判断下面程序的正误,如果错误请改正过来。main ( ) char substr80,str80;int i,j,k,num=0;gets(substr); gets(str);for (i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论