c语言《程序设计基础》课后习题参考答案与解析_第1页
c语言《程序设计基础》课后习题参考答案与解析_第2页
c语言《程序设计基础》课后习题参考答案与解析_第3页
c语言《程序设计基础》课后习题参考答案与解析_第4页
c语言《程序设计基础》课后习题参考答案与解析_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础习题参考答案与部分解析第1章 C 语言概述一、填空 a) C源程序的基本单位是 函数 。 b) 一个C程序中至少应包括一个 main函数 。 c) 在C语言中,输出操作是有库函数 printf( )函数 完成。二、单选题 1、A 2、C 3、B解析:第1题 答案:A 。因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。且到main函数结束。第2题 答案:C 。因为 main函数没有限制必须位于程序的最前面。C程序书写自由,一行内可写几个语句。在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。不过C语言本身并没有输入输出语句,输入输出是由函数完

2、成的。 第3题 答案:B。因为一个C语言程序是由若干个函数组成的。但至少包含一个main 函数,且main函数的位置不限。三、编程题1、编写一个输出“Welcome to C!”信息的小程序。解:程序如下#include “stdio.h”main( ) printf(“Welcome to C!”) ; 2、 已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。海伦公式为:S= ,其中s= (a+b+s)/2 ;解:程序如下 #include “math.h” #include “stdio.h” main( ) int a , b , c ; /* a ,b,c 3个整型变量表示

3、三角形的3条边。*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/ a=3 ; b= 4; c=5 ; s= (a+b+c)/2.0 ; s1= sqrt(s*(s-a)*(s-b)*(s-c); /* sqrt函数完成开平方根功能。*/ printf(“area=%fn”,s1); 第2章 程序设计基础知识一、单选题1、C 2、A 3、C 4、A 5、C 6、C 7、D 8、C 9、D 10、A 11、D 12、A 13、C 14、C 15、B A16、B 17 D解析:1. 答案:C。这里考察的是用户标识符的定义。用户标识符由字母、数字、下划线组成。

4、且必须以字母或下划线开头,区分大小写,且不能与C语言已有的32个关键字同名。由于选择不合法的用户标识符,A项的 A 、 P_0、 Do都是合法的用户标识符;B项的 _A是合法的;D项的 _123、 temp、INT 也都是合法的。只有C 选项的标识符都是错误的用户标识符。2. 答案:A。这里考察的是整型常量的概念。B项当中01a不正确,C项当中的0668不是正确的八进制常量,D项当中的2e5是float型常量。3答案:C。这里考察的是字符常量的定义。字符常量是用单撇号括起来的单个字符或转义字符。所以答案是C。4答案:A。字符变量只能包含一个字符。5答案:C。这里考察的是转义字符的正确表示。C项

5、的074是错误的转义字符,正确表示方法是074。6答案:C。字符变量只能包含一个字符,而C项的c=yes是错误的。7答案:D。这里考察的是输入格式的控制。输入格式要与scanf语句中字符串格式相对应。8答案:C。这里考察的是输出格式和字符对应的ASCII码值。A的ASCII码值是65,Y字符的ASCII码值是89。9答案:D。这里考察输入格式和输出结果形式。由于输入格式不正确,所以输出的是不确定值。10答案:A。这里考察的是标识符的特点区分大小写,变量sum和变量sUM是两个不同的变量,sum并没有参加运算,所以它的值不边仍然是7。11答案:D。%运算符要求两边的运算数必须是整型。12答案:A

6、。这里考察的是复合赋值运算。a%=b+1;等价与a=a%(b+1);由于a=10,b=4;所以运算后a的值是0。13答案:C。这里考察的是在变量定义类型是进行赋值操作。要求a,b,c都赋值为5,且为int 类型。只有C正确。14答案:C。这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是double(双精度)类型。15答案:B, A。这里考察的是逻辑表达式的运算过程。表达式1&表达式2 ,若表达式1的值是0的话,结果就是0,表达式2就不参加运算。要注意:赋值表达式的值是左边赋值变量的值。所以答案为B ,A。16答案:B。这里考察的是逗号表达式运算过程是从第1个表

7、达式开始运算,然后依次运行到最后一个表达式。逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。所以表达式(a=2,b=5,b+,a+b)运算过程a=2 > b=5 > b+ > a+b=8;结果是8。17答案:D。这里考察的是条件表达式的结合性是从右向左。所以k<a?k:c<b?c:a;等价于 k<a ? k:(c<b?c:a);先运算c<b?c:a ;的值是1,然后计算k<a ? k:1;的值是1。二、填空题1、-3276832767 2、字母 , 数字 , 下划线 3、分号(;)4、30 ,15 5、 18 6、 0

8、7、-264 8、 7 9、 010、 1 11、 y%2= = 1 12、 x<z | | y<z13、 0 14、 (x>2&&x<3) | | x < -10 15、 1三、编程题1、编写程序,输入一个长方形的二边长,输出其面积。解:程序如下#include “stdio.h”main( ) int a , b , s ; /* a , b 作为长方形的两个边长,s为面积。*/ printf(“请输入两个边长n”) ;scanf(“%d%d” , & a , & b) ;s = a * b ;printf(“ The area

9、 : %d n “ , s ) ;2、 设置半径为r = 2.9 ,编程求圆周长和圆面积 解:程序如下#include “stdio.h”#define PI 3.14main( ) float r , L , S ; L = 2*PI*r ; S = PI * r *r ; printf( “ L = %f , S = %f n “ , L , S ) ;3、 输入一个华氏温度,输出相应的摄氏温度。二者的换算公式是:c = 5/9(F 32) , 其中F表示华氏温度,c表示摄氏温度。解:程序如下#include “stdio.h” main( ) float c , F ; printf(“

10、请输入一个华氏温度:n”) ; scanf(“%f” , &F); c = (float) 5/9 *(F-32) ; printf(“ F=%f , c=%f n” , F , c) ;第3章 程序设计初步一、单选题1、 C 2、 C 3、 B 4、 B 5、 B解析:1. 答案:C。这里考察的是if-else 语句和表达式中有增量和减量的执行过程。if(m+>5) printf(“%dn”, m) ; else printf(“%dn”,m+) ;先执行m>5 的值是0,然后执行m=m+1; 得到m=6;由于m>5 的值是0所以执行else语句,应先输出m的值是6

11、,然后m再自增一个单位变成7。2答案:C。这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对来进行选择满足条件的答案。3答案:B。这里也考察的是if语句的嵌套。同理:if(x<y) if(y<0) z=0 ; else z+=1 ; 等价与 if(x<y) if(y<0) z=0 ; else z+=1 ; 因此答案是B。4答案:B。这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对。5答案:B。由于B项:if(x=y) &&(x!=0) x+=y ; if 后的条件表达式没有用圆括号括起来。正确的是 :if(

12、(x=y) &&(x!=0)) x+=y ; 二、根据要求完成程序填空1、 z > y z > x y > x 2、 ch >= A && ch<=Z ch=ch-323、 x < 0 x / 10 y!=2三、编程题1、 编写一个程序,要求用户从终端键入两个整数数值。检测这两个数,判定第一个数是否能被第二数整除,并在终端上显示相应的信息。解:程序如下#include “stdio.h” main( ) int a , b ; /* a为第一个数 , b为第二个数 */ printf(“Please input two num

13、bers: n”) ; scanf(“%d%d” , &a ,&b) ; if( a%b = = 0 ) printf(“%d能被%d整除。n” , a , b) ; else printf(“%d不能被%d整除。n” , a , b) ;2、 有3个整数a , b , c , 由键盘输入,输出其中最大的数。解:程序如下#include “stdio.h” main( ) int a , b , c , max ; printf(“ Please input three numbers : n”) ; scanf(“%d%d%d” , &a ,&b , &

14、;c) ; if(a>b) max = a ; else max = b ; if(max < c ) max = c ; printf( “The max is %d n”, max ) ;3、 给出一百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分以上为A,8089分为B,7079为C,6069为D,60分以下为E。解:程序如下#include “stdio.h” main( ) float score ; int grade ; printf(“Please input a score :n”); scanf(“%f “ ,&score) ; grade=(

15、int ) score /10 ; switch(grade) case 10: case 9: printf(“grade is An”) ; break ; case 8: printf(“grade is Bn”) ; break ; case 7: printf(“grade is Cn”) ; break ; case 6: printf(“grade is Dn”) ; break ; default: printf(“grade is En”) ; 4、新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下: 消费金额 折扣 P < 100 0 100 P

16、 < 200 5 200 P < 500 10 500 P < 1000 15 P 1000 20编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。要求分别用if语句和switch语句实现。解:(1) 用if语句编程实现如下#include “stdio.h” main( ) float P , d , f; printf(“输入消费金额:n”); scanf(“%f”,&P); if( P<100 ) d=0 ; if( P=100 && P<200 ) d=0.05 ; if( P=200 && P<500

17、) d=0.10 ; if( P=500 && P<1000) d=0.15 ; if( P=1000 ) d=0.20 ; f = P * (1-d) ; printf(“折扣是%f,则实付金额为%fn”,d ,f) ; (2) 用switch语句编程实现如下 #include “stdio.h” main( ) float P , d , f ; int c ; printf(“输入消费金额:n”); scanf(“%f”,&P); c = (int)P/100 ; switch( c ) case 0 : d = 0 ; break ; case 1 : d

18、 = 0.05 ; break ; case 2 : case 3 : case 4 : d = 0.10 ; break ; case 5 : case 6 : case 7 : case 8 : case 9 : d = 0.15 ; break ; default : d = 0.20 ; f = P * (1-d) ; printf(“折扣是%f,则实付金额为%fn”,d ,f) ;第4章 循环结构程序设计一、单项选择1、 A 2、 D 3、 C 4、 D 5、 B 6、 D 7、 B 8、 B二、按要求完成程序填空1、 c != n c=0 && c <=92、

19、 i%3= =2 && i%5= =3 && i%7= =2 j%5= =03、 i < 10 j%3 != 0三、编程题1、编程求n的阶乘(n由键盘输入)。解:程序如下#include “stdio.h”main( ) int n , i ;long fac ;fac = 1 ;printf(“ Input a number: ”) ;scanf(“%d” , &n) ;i = 1 ;while( i <= n ) fac = fac * i ; i+ ;printf(“ %d! is %ld n” , n , fac) ; 2、计算1!+

20、2!+3!+10!的值。解:方法一#include “stdio.h”main( ) int i=1 , j;double fac ,sum=0 ;while( i <=10 ) j=1 ;fac=1;while( j<=i ) fac = fac * j ;j+ ;sum = sum + fac ;i+ ;printf(“1!+2!+3!+10!=%.0fn”,sum);方法二: #include “stdio.h” main( ) int i , j ; double fac , sum=0 ;for(i=1;i<=10 ; i+) for(j=1,fac=1; j<

21、;=i ;j+)fac = fac * j ;sum = sum + fac ; printf(“1!+2!+3!+10!=%.0fn”,sum);方法三:#include “stdio.h” main( ) int i ; double fac , sum ; sum=0 ; fac=1 ; for( i=1 ; i<10 ; i+ ) fac = fac * i ;sum = sum + fac ;printf(“1!+2!+3!+10!=%.0fn”,sum);3、求Sn = a + aa + aaa + + aaaa(n个a)的值 ,其中a是一个数字。例如:3+33+333+33

22、33(此时n=4),n由键盘输入。解:程序如下 #include “stdio.h”main( ) int a , n , i ;long Sn , t ;Sn = 0 ;printf(“Please input a:n”);scanf(“%d”,&a);printf(“Please input n:n”);scanf(“%d”,&n) ;t=a ;for(i=1;i<= n ;i+) Sn = Sn +t ; t= t*10 +a; printf(“Sn=%ldn”,Sn);4、打印出所有的“水花仙数”,所谓“水花仙数”是指一个3位数,其各位数字立方和等于该数本身。例如

23、,153是一个水花仙数。解:程序如下#include “stdio.h”main( ) int t , a , b , c , n ; /*变量n为统计水花仙数的个数*/n=0 ;for(t=100 ; t<1000 ; t+) a = t /100 ; b = ( t a*100)/10 ; c = t%10 ;if( a*a*a + b*b*b +c*c*c = = t ) n+ ; if( n%6 = = 0 ) printf(“n”) ; printf(“%5d” , t ) ;6、每个苹果0.8元 ,第一天买2个苹果,第二天开始,每天买前一个的2倍,直至购买的苹果个数达到不超过

24、100的最大值。编写程序求每天平均花多少钱?解: 程序如下 #include “stdio.h” main( ) int day , num , sum ; float money , every ; sum = 0 ; num = 2; for(day=1 ; num<100 ; ) sum = sum + num ;day+ ;num = num *2 ; money = sum * 0.8 ; every = money/day ; printf(“ every = %f n” , every ) ;7、变成完成用一元人民币换成一分、二分、五分的所有兑换方案,即输出所有满足搭配要求

25、的1分币个数,2分币个数,5分币个数。解:程序如下:#include “stdio.h”main( ) int one ,two , five ; for(one=0 ; one<=100 ; one+) for(two=0 ; two<=50 ; two+) for(five=0 ; five<=20 ; five+) if( one + two*2 + five *5 = =100)printf(“one=%d , two=%d , five=%dn”,one , two , five);第5章 模块化程序设计-函数一、单选题1、 B 2、 B 3、 A 4、 A 5、

26、D 6、 D 7、 B 8、 B 9、 B 10、A二、编程题1、已知三角形的三边长,编一实现求三角形面积的功能函数。说明:用海伦公式来求面积,但要注意输入的三边长要符合构成三角形的条件。海伦公式为:S= (其中:s=(a+b+c)/2)解:程序如下#include “stdio.h”#include “math.h”float Area( int a , int b , int c) float s , area ;s = (float)( a+ b+ c)/2 ;if( (a+b>c)&&(a-b)<c)area=sqrt(s*(s-a)*(s-b)*(s-c)

27、;elsearea=0;return area ;main( ) int a , b , c ; float area ; float Area(int , int , int ); printf(“请输入三角形的三边长n”);scanf(“%d%d%d”, &a , &b, &c); area = Area( a , b , c) ; if(area!=0) printf(“ area=%fn”, area); eles printf( “ error!n ”) ;2、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。解:程序如下 #include “s

28、tdio.h” int prime( int n ) int t , a=1 ; for(t =2 ; t <= n/2 ; t+) if( n%t = =0) a= 0 ; break ; return a ;main( ) int n ; printf(“ input a number:n”) ; scanf(“%d”, &n ) ; if(prime(n)=1) printf(“ %d is primen” , n ); eles printf(“%d is not primen” , n) ; 3、编写函数,求1!+2!+3!+ +K!的和。解:程序如下 #include

29、 “stdio.h” double SUM( int k) int i , j ; double fac , sum ; sum=0 ; for( i=1 ; i <=k ; i+) for(j=1 , fac=1 ; j<=i ; j+)fac=fac*j ;sum = sum +fac ;return sum ; main( ) int k ; double sum ; scanf(“%d” ,&k); sum=SUM(k) ; printf(“1!+2!+3!+ +K!=%.0fn”,sum);4、求方程ax2+bx+c=0的根,用2个函数分别求当b2-4ac大于0和

30、等于0的根并输出结果,从主函数中输入a、b、c的值。#include “stdio.h”#include “math.h”void f1(float a , float b , float c) float t1 ,t2 ; t1=(-b + sqrt(b*b-4*a*c)/(2*a); t2=(-b - sqrt(b*b-4*a*c)/(2*a); printf(“t1=%f , t2=%fn”, t1,t2) ; void f2(float a , float b , float c) float t1 ; t2=-b /(2*a); printf(“t1=%fn”,t1); main(

31、) float a , b ,c; printf(“input a , b , cn”); scanf(“%f%f%f”,&a ,&b,&c); if(b*b 4*a*c>0) f1(a,b,c);eles if(b*b-4*a*c =0) f2(a,b,c);else printf(“ no jie !n”);第6章 数组一、单项选择题1、C 2、D 3、D 4、C 5、C 6、D 7、B 8、C 9、D 10、B11、B 12、B(原题数组改为a3) 13、D 14、B 15、 D 16、B 17、D 18、D 19、B 20、 D二、按要求完成程序的空缺1

32、下面程序以每行4个数据的形式输出a数组,请填空。&aI i%4 = =0 printf(“n”) ;2 下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。j<=2 bji = aij i<=2三、读程序段分析程序运行结果1 下面程序运行结果是 600 。 2。下面程序运行结果是 he 。3 下面程序的运行结果是 The result is:16 711 12 1316 17 18 1921 21 23 24 25四、编程题1、从键盘输入若干整数(个数应少于50),其值在0到4的范围内,用-1作为输入结束的标志。统计每个整数的个数。试编程序完成。解:程序如

33、下#include “stdio.h”main( ) int h50, a , b , c, d , e , n , t , i ;a=b=c=d=e=0 ;n=0 ;scanf(“%d”,&t);while( t!=-1 ) hn+= t ; scanf(“%d”,&t) ;for(i=0 ; i<n ; i+)switch( hi) case 0 : a+ ; break ; case 1 : b+ ; break ; case 2 : c+ ; break ; case 3 : d+ ; break ; case 4 : e+ ; printf(“ 0 : %d ,

34、 1: %d , 2: %d , 3: %d , 4: %dn”, a , b ,c ,d , e);2、将一个数组中的值按逆序重新存放。例如,原来顺序为 8,6,5,4,2。要求改为2,4,5,6,8。解:程序如下 #include “stdio.h” main( ) int a50 , i , n , temp, t ; n=0 ; scanf(“%d” , &t) ; while( t!=-1 ) an+= t ; scanf(“%d” ,&t) ; for(i=0 ; i< n/2 ; i+) temp=ai , ai= an-1-i , an-1-i= temp

35、 ; for(i=0 ;i< n ; i+) printf( “ %5d”, ai) ; 3、 已有一个排好序的数组,有键盘输入一个数,要求按原来的排序规律将其插入到数组中。解:程序如下 #include “stdio.h” main( ) int a50 , n , t , i ; n=0 ; scanf(“%d”,&t); while( t!=-1) an+ = t ; scanf(“%d” , &t) ; printf(“ input a number :n” ) ; scanf(“ %d” , &t) ; for(i=n-1 ; ai> t ; i-

36、) ai+1=ai ; ai+1=t ; for(i=0 ;i< n+1 ; i+) printf(“%5d”,ai); 4、写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。解:程序如下 #include “stdio.h” #include “string.h”void fanxu( char a , int n ) int i; char temp ; for(i=0 ; i<n/2 ; i+) temp=ai , ai=an-1-i , an-1-i= temp ; main( ) char a50 , n ; printf(“ input string

37、:n”); gets( a ) ; n= strlen( a) ; fanxu( a , n) ; printf( “ output string:n”) ; puts( a) ; 5、编一程序,将两个字符串连接起来,不要用strcat 函数。解:程序如下 #include “stdio.h” #include “string.h” void lianjie( char a50 , char b30) int n1 , n2 , i ; n1= strlen(a) ; n2 =strlen(b); for(i= n1 ; i<=n1+n2 ; i+) ai=bi-n1 ; main( )

38、 char a50 , b30 ; printf(“input string a:n”) ; gets(a) ; printf(“input string b:n”) ; gets(b) ; lianjie(a , b) ; printf(“output string:n”) ; puts(a) ;6、写一程序,使给定的一个二维数组(3×2)转置,即行列互换。解:程序如下#include “stdio.h”main( ) int a32 , b23 , i , j ;printf(“ input array a :n”) ;for(i=0 ; i<3 ; i+)for(j=0

39、; j<2 ; j+)scanf(“%d” , &aij) ;for(i=0 ; i<2 ; i+)for(j=0 ; j<3 ; j+)bij= aji ;printf(“input array a:n”) ;for(i=0 ; i<3 ; i+) for(j=0 ; j<2 ; j+) printf(“%5d” , aij) ; printf(“n”) ;printf(“ output array b :n”) ;for(i=0 ; i<2 ; i+) for(j=0 ; j<3 ; j+) printf(“%5d” , bij) ; pr

40、intf(“n”) ;第7章 指针一、单选题1、B 2、B 3、B 4、D 5、B 6、D 7、C 8、 C 9、 B 10、B 11、C 12、B 13、 D 14 、B 15、 D 16、D二、分析程序或程序段,写出运行结果1运行结果是 C51 。 2运行结果是 dl 。3运行结果是 aabcabc 。 4运行结果是 *ptr1=7,*ptr2=5 a=7,b=5 5. 运行结果是 hELLO! 。 6. 运行结果是 bcdABCD 三、编程题7.1、输入3个整数,按由小到大的顺序输出。(书中没该题)解:程序如下#include “stdio.h”main( ) int a , b , c

41、 , *pa , *pb,*pc , temp ;pa=&a ; pb=&b ; pc=&c ;printf(“input a、b、 c:n”) ;scanf(“%d%d%d” , &a,&b,&c) ;if(*pa>*pb) temp=*pa, *pa=*pb , *pb=temp ;if(*pa>*pc)temp=*pa, *pa=*pc , *pc=temp ;if(*pb>*pc)temp=*pb, *pb=*pc , *pc=temp ;printf(“从小到大的顺序是:n”) ;printf(“%d , %d , %

42、dn” , a , b , c ) ;7.2、输入3个字符串,按由小到大的顺序输出。(书中没该题)解:程序如下#include “stdio.h”#include “string.h”main( ) char a50 , b50 , c50 , *pa ,*pb , *pc , *ch ;pa = a ; pb = b ; pc = c ;gets(pa) ; gets(pb) ; gets(pc ) ;if(strcmp(pa , pb ) >0 )ch=pa , pa = pb , pb = ch ;if(strcmp(pa , pc ) >0 )ch=pa , pa = pc

43、 , pc = ch ;if(strcmp(pb , pc ) >0) ch=pb , pb = pc , pc = ch ;puts(pa) ; puts(pb ) ; puts(pc) ;2、输入10个整数,将其中最小的数与第一个对换,把最大的数与最后一个数对换。写出3个函数: 输入10个整数;进行处理;输出10个数。解:程序如下#include “stdio.h”void input( int *a) int n ;for(n=0 ; n<10 ; n+)scanf(“%d” , a+n) ; void process( int *a)int min , temp , max

44、 , n1 , n2 , i ;min=max=*a ; n1=n2=0 ;for(i=1 ; i<10 ; i+) if( *(a+i) < min ) min=*(a+i) ; n1= i ; if( *(a+i) > max ) max=*(a+i) ; n2= i ; temp=a0 , a0 = an1 , an1 = temp ; temp=a9 , a9 = an2 , an2= temp ; void output( int *a) int n ; for(n=0 ; n<10 ; n+) printf(“%5d” , *(a+n); main( ) i

45、nt a10 , *pa ; pa=a ; input(pa) ; process(pa) ; output( pa ) ;7.6 写一函数,将一个3×3的矩阵转值。(书中没该题)解:程序如下#include “stdio.h”void zhuanzhi( int *a) int i , j , temp ;for(i=0 ; i<3; i+)for(j=0 ; j<=i; j+)temp=*(a+i*3+j) , *(a+i*3 +j) = *(a +j*3 +i) , *(a +j*3 +i)=temp ; main( ) int a33 , *pa ,i ,j;pa

46、=a ;for(i=0 ; i<3 ; i+)for(j=0 ; j<3 ; j+)scanf(“%d”,pa+i*3+j) ;zhuanzhi(pa) ;printf(“output array a:n”);for(i=0 ; i<3 ; i+) for(j=0 ; j<3 ; j+) printf(“%5d” , *(pa+i*3+j);printf(“n”) ;5、输入一行文字,找出其中大写字母、小写字母、空格、数字、以及其它字符各有多少?解:程序如下#include “stdio.h”#include “string.h”main( ) char ch50 ,

47、*p , n , a , b , c , d , e ,i;a=b=c=d=e=0 ;p = ch ;printf(“input string:n”) ;gets(p) ;n=strlen(p) ;for( i=0 ;i<n ; i+) if( *(p+i)>=A&& *(p+i)<=Z) a+ ; else if(*(p+i) >=a&& *(p+i)<=z) b+ ; else if(*(p+i)= ) c+ ; else if(*(p+i)>=0&& *(p+i)<=9) d+ ; else e+ ; printf(“大写字母:%d , 小写字母:%d ,空格:%d , 数字:%d,其他字符:%dn”,a , b, c, d ,e);第8章 结构体与共用体一、 单选题1、A 2、C 3、A 4、D 5、D6、D 7、D 8、C 9、C 10、B11、B二、判断分析题(对的打“”;错的打“×”并分析原因) 1× 分析:因为结构体中是可包含多种不同数据类型的

温馨提示

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

评论

0/150

提交评论