版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章C语言概述习题1.单项选择题(1) C语言是在B语言的基础上产生的。A.回车符B.冒号C.逗号D.分号(2) 在C语言中,每个语句必须以D结束。A.回车符B.冒号C.逗号D.分号(3) 标识符和关键字间,要用C隔开。A.回车符B.冒号C.空格D.分号(4) 用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件(5) 下列说法中正确的是(B)。A.由于C源程序是高级语言程序,因此一定要在TC软件中输入B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行D.由于C程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是(A)。A.C语言程序由主函数和0个或多个函数组成 B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成 D.C语言程序由过程组成(7) 下列说法中错误的是(D)。A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行2.填空题(1) C语言只有37个关键字和9种控制语句。(2) C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。(4) 在C语言程序中允许出现的字符集是ASCII码字符集。(5)C语言的程序中有特殊含义的英语单词称为保留字。(6)C语言标识符的长度是前8位有效。(7) C语言中,标识符的定义规则是以字母或下划线为开头。(8) C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。第2章数据类型运算符和表达式习题1.单项选择题(1) 以下选项中,正确的C语言整型常量是D。A.32LB.510000C.-1.00D.567(2) 以下选项中,D是不正确的C语言字符型常量。A.'a'B.'\x41'C.'\101'D."a"(3) 在C语言中,字符型数据在计算机内存中,以字符的C形式存储。A.原码B.反码C.ASCII码D.BCD码(4) 字符串的结束标志是C。A.0B.'0'C.'\0'D."0"(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为B。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算(6) 逻辑运算符中,运算优先级按从高到低依次为D。A.&&,!,||B.||,&&,!C.&&,||,!D.!,&&,||(7) 表达式!x||a==b等效于D。A.!((x||a)==b)B.!(x||y)==bC.!(x||(a==b))D.(!x)||(a==b)(8) 设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是A。A.0,0B.0,1C.1,0D.1,1(9) intb=0,x=1;执行语句if(x++)b=x+1;后,x,b的值依次为A。A.2,3B.2,0C.3,0D.3,2(10)设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是B。A.3B.0C.9D.-12(11) 在以下一组运算符中,优先级最低的运算符是D。A.*B.!=C.+D.=(12) 设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是B。A.6B.12C.15D.表达式出错(13) 若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是C。(都为整型)A.1B.2C.2.0D.2.5(14) sizeof(double)的结果值是A。(表是长度)字节A.8B.4C.2D.出错(15) 设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为D。A.4B.3C.2D.1(16) 设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是A。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)(17) 设f是实型变量,下列表达式中不是逗号表达式的是D。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)(18) 设ch是char型变量,其值为'A',则下面表达式的值是B。ch=(ch>='A'&&ch<='Z')?(ch+32):chA.AB.aC.ZD.Z(19) 以下运算符中,结合性与其他运算符不同的是A。A.++B.%C./D.+(20) 以下用户标识符中,合法的是B。A.intB.nitC.123D.a+b(21) C语言中,要求运算对象只能为整数的运算符是%。A.%B./C.>D.*(22)PC机中,'\n'在内存占用的字节数是A。A.1B.2C.3D.4(23) 字符串"ABC"在内存占用的字节数是B。A.3B.4C.6D.8(24) 要为字符型变量a赋初值,下列语句中哪一个是正确的B。A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;(25)下列不正确的转义字符是C。A.\\B.\'C.074D.\02.填空题(1)C语言中的逻辑值“真”是用!0表示的,逻辑值“假”是用0表示的。(2)符号常量的定义方法是#defineN10。(3)无符号基本整型的数据类型符为unsignedint,双精度实型数据类型符为double,字符型数据类型符为char。(4)设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b==a=2的值分别为1、0、1、表达式错误。(5)设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。(6)判断变量a、b的值均不为0的逻辑表达式为(a!=0)&&(b!=0)。(7)求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,4,10,6。(8)求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3。(9)数学式a/(b*c)的C语言表达式a/(b*c)。第3章顺序结构程序设计习题1.选择题(1) printf("f=%3.2f%%",3.478);的输出结果是A。A.f=3.48%B.f=3.5%C.f=3.48%%D.f=347.8%(2) printf("%c,%d",'a','a');的输出结果是A。A.a,97B.a97C.97,aD.97a(3) scanf("%c",&a);若要给变量输入大写字母A,则以下正确的输入是B。A.'A'<CR>B.A<CR>\ C."A"<CR>D.以上都不对(4) 若一个int类型的数据占2字节,则程序段:intx=-1;printf("%u,%d",x,x);的输出结果是A。A.65535,-1B.-1,65535 C.32767,32768D.32768,32767(5) 在TC中,getchar、putchar、printf、scanf四个函数,均包含在头文件B中。A.math.hB.stdio.h C.stbio.hD.stdlib.h(6) 复合语句是用C括起来的语句组。A.()B.[]C.{}D.<>(7) 下列格式符中,哪一个可以用于以八进制形式输出整数C。A.%dB.%8dC.%oD.%ld(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数B。A.%16dB.%8xC.%d16D.%d(9)a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的B。A.scanf("%d,%c",&a,&c);B.scanf("%d%c",a,c);C.scanf("%d%c",&a,&c);D.scanf("d=%d,c=%c",&a,&c);(10) 要使doublex;longa;的数据能正确的输出,输出语句应是D。A.printf("%d,%f",a,x); B.printf("%d,%1f",a,x);C.scanf("%1d,%1f",&a,&x); D.printf("%1d,%lf",a,x);2.程序改错题(以下各个程序段均有5个错误,请先找出错误的位置,然后再改正)(1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。#include"stdio.h"mian()//main(){charc//charc;getchar(c);//c=getchar();putchar('\007');/*鸣笛*/c=putchar();//putchar(c);//}(2) 以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。main//main(){inta,b,s,l;//doublea,b,s,l;scanf("%d,%d",&a,&b);//scanf("%lf,%lf",&a,&b);s=a*b;l=a+b;//l=(a+b)*2;printf("l=%f,s=%f\n",l);//printf("l=%lf,s=%lf\n",l,s);}3.写出程序运行结果(1)main(){inta,b;scanf("%2d%*2s%2d",&a,&b);printf("%d\n",a+b);}运行时输入:输出:68(2) main(){inta=3,b=5,x,y;x=a+1,b+6;y=(a+1,b+6);printf("x=%d\ny=%d\n",x,y);}输出:x=4 y=11第4章选择结构程序设计习题1.单项选择题(1)选择结构程序设计的特点是___B____。A.自上向下逐个执行B.根据判断条件,选择其中一个分支执行C.反复执行某些程序代码D.以上都是(2)假定所有变量均已正确定义,下列程序段运行后x的值是__B_。a=b=c=0,x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C.35D.3(3)下面的程序片段所表示的数学函数关系是_A____。if(x<0)y=-1;elseif(x>0)y=1;elsey=0;(4)下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。A.if(a>b)printf("%d\n",a);printf("%d\n",b);B.printf("%d\n",b);if(a>b)printf("%d\n",a);C.if(a>b)printf("%d\n",a);elseprintf("%d\n",b);D.if(a<b)printf("%d\n",a);printf("%d\n",b);(5) 以下程序段的输出结果是Aintx=5;if(x>0)y=1;elseif(x==0)y=0;elsey=1;printf("%d",y);A.1B.5C.0D.2(6) 程序段intx=5,y=8,max;max=(x>y)?x:y;printf("%d",max);的输出结果是B。A.5B.8C.3D.13(7) 程序段intx=3,a=1;switch(x){case4:a++;case3:a++;case2:a++;case1:a++;}printf("%d",a);的输出结果是D。A.1B.2C.3D.4(8)下列语句应将小写字母转换为大写字母,其中正确的是(B)。A.if(ch>='a'&ch<='z')ch=ch-32; B.if(ch>='a'&&ch<='z')ch=ch-32;C.ch=(ch>='a'&&ch<='z')?ch-32:’’; D.ch=(ch>'a'&&ch<'z')?ch-32:ch;2.阅读程序,写出运行结果(1)voidmain(){inta=10,b=4,c=3;if(a<b)a=b;if(a<c)a=c;printf("%d,%d,%d\n",a,b,c);}输出:10,4,3(2)voidmain(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10; elsex=-1;printf("%d\n",x);}输出:-1;(3)intk,a=1,b=2;k=(a++==b)?2:3;printf("%d",k);输出:3(4)voidmain(){ ints=1,k=0; switch(s) { case1:k+=1; case2:k+=2; default:k+=3;}printf(“%d”,k);}输出:6(5)voidmain(){ ints=1,k=0; switch(s) { case1:k+=1;break; case2:k+=2;break; default:k+=3;}printf(“%d”,k);}输出:1第5章循环结构程序设计习题1.单项选择题(1)for(i=1;i<9;i+=1);该循环共执行了B次。A.7B.8C.9D.10(2)inta=2;while(a=0)a--;该循环共执行了A次。A.0B.1C.2D.3(3)执行完循环for(i=1;i<100;i++);后,i的值为B。A.99B.100C.101D.102(4)以下for语句中,书写错误的是D。A.for(i=1;i<5;i++);B.i=1;for(;i<5;i++);C.for(i=1;i<5;)i++; D.for(i=1,i<5,i++);(5)C语句,在循环条件初次判断为假,还会执行一次循环体。A.forB.whileC.do-whileD.以上都不是(6)循环结构的特点是C。A.从上至下,逐个执行B.根据判断条件,执行其中一个分支C.满足条件时反复执行循环体D.以上都对(7)i、j已定义为int类型,则以下程序段中内循环体的执行次数是A。for(i=5;i;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30(8)C语言while语句中,用于条件的表达式是D。A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式(9)inta=1,x=1;循环语句while(a<10)x++;a++;的循环执行D。A.无限次B.不确定次C.10次D.9次(10)下列程序段执行后s的值为A。inti=1,s=0;while(i++)if(!(i%3))break;elses+=i;A.2B.3C.6D.以上均不是 2.填空题(1)三种循环语句是等价价的。(2)当循环体中的switch语句内有break语句,则只跳出swicth语句。同样,当switch语句中有循环语句,内有break语句,则只跳出循环语句。(3)循环体执行遇到continue语句时跳过本次循环进入下次循环。(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。voidmain(){inti,x,y=1;scanf("%d",&x);for(i=2;i<=x/2;i++)if(x%i==0){y=0;break;}printf("%d\n",y);}(5)输入N个实数,输出其中的最大值、最小值。#include<stdio.h>voidmain(){intn,i; floatno1,nmax,nmin;scanf("%d",&n);scanf("%f",&no1);nmax=no1; nmin=no1;for(i=2;i<=n;i++){scanf("%f",&no1);if(no1>nmax)nmax=no1; if(no1<nmin)nmin=no1;}printf("MAX=%fMIN=%f\n",nmax,nmin);}(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#include<stdio.h>voidmain(){charch;ints1=0,s2=0;while((ch=getchar())!='\n'){if(ch>='0'&&ch<='9')s1++;if(ch>='a'&&ch<='z'||ch>=’A’||ch<=’Z’)s2++;}}3.阅读下列程序,写出程序运行的输出结果(1)voidmain(){inty=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}输出:852(2)main(){intk,n,m;n=10;m=1;k=1;while(k++<=n)m*=2;printf("%d\n",m);}输出:1024(3)voidmain(){inti=5;do{switch(i%2){case4:i--;break;case6:i--;continue;}i--;i--;printf("i=%d",i);}while(i>0);}输出:i=3i=1i=-1(4)#include<stdio.h>voidmain(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;break;case'E':k=k*10;break;default:k=k/3;}k++;}while(c<'G');printf("k=%d\n",k);}输出:8(5)输入数据:2,4#include<stdio.h>voidmain(){ints=1,t=1,a,n;inti;scanf("%d,%d",&a,&n);for(i=1;i<n;i++){t=t*10+1;s=s+t;}s*=a;printf("SUM=%d\n",s);}输出:24684.程序改错(1)以下程序是显示[200,300]所有能被7整除的数,每行显示5个数,此程序有5处错。main(){inti,n=0;/*n用来记录每行已打印数的个数*/while(i<300)//while((i<=300)&&(i>=200)){//i++;if(i%7==0)//if(i%7!=0)break;//continue;printf("%5d",i);n=n+1;if(n=5)/*满5个换行*///if(n==5){printf("\n");n=0;}}}(2)以下程序是求1!+2!+3!+4!+5!+6!+7!的值,其中有3处错误。main(){inti,s,t=0;//longs=0,t=1; //inti;for(i=1;i<=7;i++){s=0;//去掉该语句t=t*i;s=s+t;}printf("sum=d\n",s);//printf(“sum=%ld”,s);}第6章函数习题1.单项选择题(1)C语言总是从A函数开始执行。A.mainB.处于最前的 C.处于最后的D.随机选一个(2)函数在定义时,省略函数类型说明符,则该函数值的类型为A。A.intB.floatC.longD.double(2)以下B函数,真正地没有返回值。A.inta(){inta=2;return(a);} B.voidb(){printf("c");}C.inta(){inta=2;returna;} D.以上都是(3)在C语言中,有关函数的说法,以下正确的是C。A.函数可嵌套定义,也可嵌套调用B.函数可嵌套定义,但不可嵌套调用C.函数不可嵌套定义,但可嵌套调用D.函数不可嵌套定义,也不可嵌套调用(4)以下函数调用语句中,含有实参的个数为B。7fun((2,3),(4,5+6,7));A.1B.2C.5D.6(5)函数调用可以在D。A.函数表达式中B.函数语句中 C.函数参数中D.以上都是(6)被调函数返回给主调函数的值称为C。A.形参B.实参C.返回值D.参数(7)D,可以不进行函数类型说明。A.被调函数的返回值是整型或字符型时 B.被调函数的定义在主调函数定义之前时C.在所有函数定义前,已在函数外预先说明了被调函数类型 D.以上都是(8)被调函数通过D语句,将值返回给主调函数。A.ifB.forC.whileD.return(9)被调函数调用结束后,返回到B。A.主调函数中该被调函数调用语句处B.主函数中该被调函数调用语句处C.主调函数中该被调函数调用语句的前一语句D.主调函数中该被调函数调用语句的后一语句(10)以下对C语言函数的有关描述中,正确的是A。A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中(11)C语言中函数的隐含存储类型是A。A.autoB.staticC.externD.无存储类型(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是A。A.return这两个数 B.形参用两个元素的数组C.形参用两个这种数据类型的指针 D.用两个全局变量2.填空题(1)变量的作用域主要取决于变量定义的位子,变量的生存期既取决于变量存储类型,又取决于变量存储方式。(2)说明变量时,若省略存储类型符,系统默认其为整形存储类别,该存储类别的类型符为:int。(3)静态型局部变量的作用域是静态局部变量定义的复合语句或函数体内,生存期是整个程序运行期内。(4)函数中的形参和调用时的实参都是数组名时,传递方式为地址传递,都是变量时,传递方式为值传递。(5)函数的形式参数的作用域为整个函数体内,全局的外部变量和函数体内定义的局部变量重名时,函数体内定义的局部变量优先。(6)若自定义函数要求返回一个值,则应在该函数体中有一条return语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符void。(7)若函数的形式参数是指针类型,则实参可以是数组名、地址或指针变量。(8)函数的参数为char*类型时,形参与实参结合的传递方式为地址传递。(9)函数的实参为常量时,形参与实参结合的传递方式为值传递。(10)对数组按值从大到小的顺序排序后输出,请填空。#include<stdio.h>voidmain(){floata[7]={2,6,3,8,3,12,9}; inti?;voidsort(float*,int);sort(a,7);for(i=0;i<7;i++)printf("%f",a[i]);printf("\n");}voidsort(float*p,intn){inti,j,k;floatt;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(p[k]<p[j])k=j;if(k!=i){t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}}}(11)下列函数在n个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。#include<stdio.h>voidfind(float*p,float*max,float*min,intn){intk;floatt;*max=*p;*min=*p;for(k=1;k<n;k++){t=*(p+k);if(t>*max)*max=t;if(t<*min)*min=t;}}3.写出下列程序运行结果:(1)main(){inti=1,p;p=fun(i,i+1);printf("%d\n",p);}intfun(inta,intb){intf;if(a>b)f=1;elseif(a==b)f=0;elsef=-1;returnf;}输出:-1(2)键盘输入abcdef<CR>#include<stdio.h>voidfun(){charc;if((c=getchar())!='\n')fun();putchar(c);}voidmain(){fun();}输出:fedcba(3)#include<stdio.h>#defineC5intx=1,y=C;voidmain(){intx;x=y++;printf("%d%d\n",x,y);if(x>4){intx;x=++y;printf("%d%d\n",x,y);}x+=y--;printf("%d%d\n",x,y);}(4)#include<stdio.h>intc,a=4;func(inta,intb){c=a*b;a=b-1;b++;return(a+b+1);}voidmain(){intb=2,p=0;c=1;p=func(b,a);printf("%d,%d,%d,%d\n",a,b,c,p);}输出:4,2,8,9(5)unsignedfun6(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);returnk;}voidmain(){unsignedn=26;printf("%d\n",fun6(n));}输出:12输出:5677126第7章数组习题1.单项选择题(1) inta[4]={5,3,8,9};其中a[3]的值为(D)。A.5B.3C.8D.9(2) 以下4个字符串函数中,(A)所在的头文件与其他3个不同。A.getsB.strcpyC.strlenD.strcmp(3) 以下4个数组定义中,(D)是错误的。A.inta[7];B.#defineN5longb[N];C.charc[5];D.intn,d[n];(4) 对字符数组进行初始化,(B)形式是错误。A.charc1[]={'1','2','3'};B.charc2[]=123;C.charc3[]={'1','2','3','\0'};D.charc4[]="123";(5) 在数组中,数组名表示(A)。A.数组第1个元素的首地址B.数组第2个元素的首地址C.数组所有元素的首地址D.数组最后1个元素的首地址(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是(B)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,12(7) 若有以下说明,则数值为4的表达式是(D)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c](8) 设有定义:chars[12]="string";则printf("%d\n",strlen(s));的输出是(A)。A.6B.7C.11D.12(9) 设有定义:chars[12]="string";则printf("%d\n",sizeof(s));的输出是(B)。A.6B.7C.11D.12(10) 合法的数组定义是(A)。A.chara[]="string"; B.inta[5]={0,1,2,3,4,5};C.chara="string";D.chara[]={0,1,2,3,4,5};(11) 合法的数组定义是(B)。A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};(12) 下列语句中,正确的是(D)。A.chara[3][]={'abc','1'};B.chara[][3]={'abc','1'};C.chara[3][]={'a',"1"};D.chara[][3]={"a","1"};(13) 下列定义的字符数组中,输出printf("%s\n",str[2]);的输出是(C)。staticstr[3][20]={"basic","foxpro","windows"};A.basicB.foxproC.windowsD.输出语句出错(14) 下列各语句定义了数组,其中哪一个是不正确的(C)。A.chara[3][10]={"China","American","Asia"}; B.intx[2][2]={1,2,3,4};C.floatx[2][]={1,2,4,6,8,10}; D.intm[][3]={1,2,3,4,5,6};(15) 数组定义为inta[3][2]={1,2,3,4,5,6},值为6的数组元素是(B)。A.a[3][2]B.a[2][1] C.a[1][2]D.a[2][3]2.填空题(1) C语言中,数组的各元素必须具有相同的类型,元素的下标下限为0,下标必须是正整数、0、或者常量。但在程序执行过程中,不检查元素下标是否越界。(2) C语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。数组名是一个字符常量,不能对它进行赋值运算。(3) 执行staticintb[5],a[][3]={1,2,3,4,5,6};后,b[4]=0,a[1][2]=6。(4) 设有定义语句staticinta[3][4]={{1},{2},{3}};则a[1][0]值为2,a[1][1]值为0,a[2][1]的值为0。(5) 如定义语句为chara[]="windows",b[]="2000";,语句printf("%s",strcat(a,b));的输出结果为windows2000。(6) 输入20个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。#include<stdio.h>#include<math.h>voidmain(){floata[20],pjz=0,s,t;inti,k;for(i=0;i<20;i++)scanf(“%f”,&a[i]);for(i=0;i<20;i++)pjz+=a[i];pjz/=20;s=fabs(a[0]-pjz);for(i=1;i<20;i++)if(fabs(a[i]-pjz)<s){s=fabs(a[i]-pjz);t=a[i];}printf(“%f,%f”,pjz,t);}(7) 以下程序以每行10个数据的形式输出a数组,请填空。voidmain(){inta[50],i;printf("输入50个整数:");for(i=0;i<50;i++)scanf("%d",&a[i]);for(i=1;i<=50;i++){if(i%10==0)printf("%3d\n",a[i-1]);elseprintf("%3d",a[i-1]);}}(8)下面程序的功能是输出数组s中最大元素的下标,请填空。voidmain(){ intk,p; ints[]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)if(s[p]>s[k])k=p;printf("%d\n",k);}3.阅读程序,分析程序的功能。(1)#include<stdio.h>#include<string.h>voidmain(){chars[80];inti;for(i=0;i<80;i++){s[i]=getchar();if(s[i]=='\n')break;}s[i]='\0';i=0;while(s[i])putchar(s[i++]);putchar(‘\n’);}分析:输入一个字符串,以回车结束,并将其原样输出。(2)#include<stdio.h>#include<string.h>voidmain(){charstr[10][80],c[80];inti;for(i=0;i<10;i++)gets(str[i]);strcpy(c,str[0]);for(i=1;i<10;i++)if(strlen(c)<strlen(str[i])){strcpy(c,str[i]);}printf("%s\n",c);printf("%d\n",strlen(c));}分析:输入10个字符串,输出10个字符串中最长的字符串和它的长度。(3)#include<stdio.h>#include<string.h>voidmain(){ chara[10][80],c[80]; inti,j,k; for(i=0;i<10;i++) gets(a[i]); for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(strcmp(a[j],a[k])<0) k=j; if(k!=i) { strcpy(c,a[i]); strcpy(a[i],a[k]); strcpy(a[k],c);}//字符串交换 } for(i=0;i<10;i++) puts(a[i]);}分析:输入10个字符串,用选择排序算法将10个字符串按从小到大顺序排列并输出。(4) 阅读程序,写出运行结果。#include<stdio.h>voidmain(){inta[6]={12,4,17,25,27,16};intb[6]={27,13,4,25,23,16},i,j;for(i=0;i<6;i++){for(j=0;j<6;j++)if(a[i]==b[j])break;if(j<6)printf("%d",a[i]);}printf("\n");}分析:按数组a中元素顺序输出与数组b中元素相同的数。输出:4,25,27,16(5) 阅读程序,写出运行结果。#include<stdio.h>voidmain(){chara[8],temp;intj,k;for(j=0;j<7;j++)a[j]='a'+j;a[7]='\0';for(j=0;j<3;j++){temp=a[6];for(k=6;k>0;k--)a[k]=a[k-1];a[0]=temp;printf("%s\n",a);}}分析:将字符串的最后的3个元素移到字符串首位。输出:efgabcd(6)阅读下列程序,写出程序运行的输出结果。#include<stdio.h>#include<string.h>voidmain(){charstr1[]="*******";for(inti=0;i<4;i++){printf("%s\n",str1);str1[i]='';str1[strlen(str1)-1]='\0';}}输出:****************第8章指针习题1.单项选择题(1) 指针pstr所指字符串的长度为D。char*pstr="\t\"1234\\abcd\n"A.15B.14C.13D.12(2) 对于char*pstr;,以下正确的是B。A.*pstr="Hi"B.pstr="Hi"C.*pstr="?Hi"D.**pstr="Hi"(3) 以下程序段的输出结果为B。charastr[5]="1234";char*pstr=astr;printf("%c",pstr[1]-'0');A.1B.2C.ASCII码值为1的字符D.ASCII码值为2的字符(4) 下述程序段的输出结果为D。charastr[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 可靠一件代发协议
- 补充协议与主合同的衔接
- 版合同协议范本
- 购销合同中印花税的计算方式
- 厨房电器设计合同
- 物流采购合同的合同收益分析
- 政府采购中的空调合同
- 招标监理机构招募
- 医疗设备动态
- 医药制造业企业定位与发展战略考核试卷
- 平果县采石场事故应急救援演练方案
- 写作《写出人物的精神》-部编版语文七年级下册
- 发展汉语-初级综合2-1入乡随俗
- 国家开放大学《四史通讲》形考任务专题1-6自测练习参考答案
- GB/T 19889.5-2006声学建筑和建筑构件隔声测量第5部分:外墙构件和外墙空气声隔声的现场测量
- GB/T 18910.61-2012液晶显示器件第6-1部分:液晶显示器件测试方法光电参数
- 兴业矿产资源总体规划
- GB 16780-2021水泥单位产品能源消耗限额
- GA 1800.3-2021电力系统治安反恐防范要求第3部分:水力发电企业
- 《说优点-讲不足-手拉手-同进步》主题队会课件
- 食用香料香精产品生产许可实施细则
评论
0/150
提交评论