C题库.docx
- 文档编号:7645384
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:14
- 大小:23.21KB
C题库.docx
《C题库.docx》由会员分享,可在线阅读,更多相关《C题库.docx(14页珍藏版)》请在冰豆网上搜索。
C题库
填空题:
2/*[例3.7]已知圆柱体的底半径为r,高为h,求其体积*/
/*功能:
函数scanf()的格式及作用。
*/
main()
{float__1__
floatpi=3.1415926;
printf("Pleaseinputr&h:
");
scanf("%f%f",__2__);
/*从键盘输入两个实数赋给变量r,h*/
v=__3__;
printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",r,h,v);
}
1.r,h,v;2.&r,&h3.pi*r*r*h
3/*[例3.10]求方程ax2+bx+c=0的实数根。
其中a、b、c由键盘输入,a≠0且b2-4ac>0*/
/*功能:
设计一个顺序结构程序,求二次方程的根。
提示b方减4ac*/
#include"math.h"/*为求sqrt(),包含math.h头文件*/
main()
{floata,b,c,disc,x1,x2;
printf("Inputa,b,c:
");
scanf("__1__",&a,&b,&c);
__2__;/*求判别式的值赋给disc*/
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("\nx1=%6.2f\nx2=%6.2f\n",x1,__3__);
}
1.%f%f%f2.disc=b*b-4*a*c3.x2
4/*[例3.11]从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值*,要求用getchar函数录入一个字母/
#include"stdio.h"
main()
{charc1,c2;
printf("录入一个小字的字母:
");
__1__;
putchar(c1);printf(",%d\t",c1);
c2=__2__;/*将小写字母转换成对应的大写字母*/
printf("%c,%d\n",__3__,c2);
}
1.c1=gcetchar()2.c1-323.c2
5/*[例3.12]输入任意三个整数,求它们的和及平均值*/操作三个变量的顺序请按照num1,num2,num3这个顺序
main()
{intnum1,num2,num3,sum;
floataver;
printf("pleaseinputthreenumbers:
");
scanf("%d,%d,%d",__1__);
__2__;
__3__=sum/3.0;
printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
printf("sum=%d,aver=%7.2f\n",__4__);
}
1.&num1,&num2,&num32.sum=num1+num2+num33.aver4.sum,aver
55/*[例4.1]输入任意三个整数num1、num2、num3,求三个数中最大值*/
main()
{intnum1,num2,num3,__1__;
printf("Pleaseinputthreenumbers:
");
scanf("%d,%d,%d",&num1,&num2,&num3);
if(__2__)
max=num1;
else
max=num2;
if(__3__)
__4__;
printf("Thethreenumbersre:
%d,%d,%d\n",num1,num2,num3);
printf("max=%d\n",max);
}
1.max2.num1>num23.max
7/*[例4.2]输入任意三个数num1、num2、num3,按从小到大的顺序排序输出*/
main()
{intnum1,num2,num3,temp;
printf("Pleaseinputthreenumbers:
");
scanf("%d,%d,%d",&num1,&num2,&num3);
if(__1__){temp=num1;num1=num2;__2__;}
if(num2>num3){temp=num2;num2=num3;num3=temp;}
if(__3__){temp=num1;__4__;num2=temp;}
printf("Threenumbersaftesorted:
%d,%d,%d\n",num1,num2,num3);
}
1.num1>num22.num2=temp3.num1>num24.num1=num2
8/*[例4.3]写一程序,从键盘上输入年份year,判断其是否闰年*/
/*闰年的条件是:
能被4整除、但不能被100整除,或者能被400整除*/
main()
{intyear,__1__;/*预置为非闰年*/
printf("Pleaseinputtheyear:
");
scanf("%d",&year);
if(__2__)
{if(year%100!
=0)leap=__3__;}
else
{if(year%400==0)leap=1;}
if(__4__)printf("%disaleapyear.\n",year);
elseprintf("%disnotaleapyear.\n",year);
}
1.leap=02.year%4==03.14.leap
9/*[例4.4]从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则直接输出*/
main()
{charch;
printf("Inputacharacter:
");
scanf(__1__);
ch=(ch>='__2__'&&ch<='__3__')?
(ch+32):
__4__;
printf("ch=%c\n",ch);
}
1."%c",&ch2.A3.Z4.ch
10/*[例5.1]求1~100的累计和*/
main()
{inti,__1__;
for(i=1;i<=__2__;i++)
sum+=__3__;/*实现累加*/
printf("sum=%d\n",sum);
}
1.sum=02.1003.i
11/*[例5.2]求n的阶乘n!
(n!
=1*2*……*n)*/
main()
{inti,n;
long__1__;/*将累乘器fact初始化*/
printf("Inputn:
");
scanf("%d",&n);
for(__2__;i<=n;__3__)
__4__*=i;/*实现累乘*/
printf("%d!
=%ld\n",n,fact);
}
1.fact=12.i=13.i++4.fact
12/*[例5.3]用do-while语句求解1~100的累计和*/
main()
{int__1__,__2__;/*初始化循环控制变量i和累计器sum*/
while(i<=100)
{sum+=i;/*实现累加*/
__3__;/*循环控制变量i增1*/
}
printf("累和=%d\n",__4__);
}
1.i=12.sum=03.i++4.sum
13/*[例5.4]用do-while语句求解1~100的累计和*/
main()
{inti=1,sum=0;/*定义并初始化循环控制变量,以及累计器*/
__1__
{__2__+=i;/*累加*/
__3__;}
while(i<=__4__);/*循环继续条件:
i<=100*/
printf("sum=%d\n",sum);
}
1.do2.sum3.i++4.100
41___1___3.1415926/*定义宏PI*/
main()
{floatradius,length,area,volume;
printf("Inputa半径:
");
___2___;
length=2*PI*radius;/*引用无参宏求周长*/
__3__=PI*radius*radius;/*引用无参宏求面积*/
volume=PI*radius*radius*radius*3/4;/*引用无参宏求体积*/
printf("length=%.2f,area=%.2f,volume=%.2f\n",length,area,volume);
}
1.#definePI2.scanf("%f",&radius)3.area
17/*[例6.1]从键盘上任意输入10个整数,要求按从小到大的顺序在屏幕上显示*/
#include"stdio.h"
#define__1__/*定义符号常量(数据个数N)*/
main()
{intdata[NUM];/*定义1个一维整型数组data*/
inti,j,__2__;/*定义循环变量和临时变量*/
clrscr();/*库函数clrscr():
清屏*/
printf("Pleaseinput10numbers:
\n");
for(i=0;i scanf("%d",__3__); for(i=0;i 控制比较趟数*/ for(j=NUM-1;j>i;j--) }/*内循环: 进行每趟比较*/ if(data[j] {temp=data[j]; data[j]=data[j-1]; data[j-1]=__4__; } /*输出排序后的数据*/ printf("\ntheresultofsort: \n"); for(i=0;i printf("%d",data[i]); getch(); /*等待键盘输入任一字符,目的使程序暂停*/ } 1.NUM102.temp3.&data[i]4.temp 16/*例6.2]从键盘输入20个整数,检查整数10是否包含在这些数据中,若是的话,它是第几个被输入的*/ #include"stdio.h" main() {intdata[20],i; for(i=0;i<__1__;i++) scanf("%d",&data[i]); for(i=0;i<20;i++) if(__2__) {printf("10isinputthepostion%d\n",i+1); __3__; } } 1.202.data[i]==103.break 18/*[例6.5]已知一个3×4矩阵,要求编写程序求出矩阵中所有元素中的最大值,并找出其所在的位置,即行号和列号*/ #include"stdio.h" main() {inti,j,r,c,max; int__1__={1,2,3,4,5,6,7,8,9,10,11,12}; __2__=a[0][0]; for(i=0;i<3;i++) for(j=0;__3__;j++) if(a[i][j]>max) max=a[i][j],r=i+1,c=j+1;/*用逗号表达式实现对最大值max、行号r、列号c赋值*/ printf("max=%d,r=%d,c=%d",max,r,c); } 1.a[3][4]2.max3.j<4 20/*[例6.7]从终端键盘输入一字符串,并复制到另一字符数组后显示出来*/ #include"stdio.h" main() {charstr1[30],str2[30]; inti; printf("inputastring: "); scanf("%s",__1__); i=0; while(str1[i]! ='\0') {__2__; i++; } __3__='\0'; printf("__4__",str2); 1.str12.str2[i]=str1[i]3.str2[i]4.%s } 22/*[例7.1]定义一个函数,用于求两个数中的大数*/ intmax(intn1,__1__)/*定义一个函数max()*/ {return(__2__? n1: n2); } main() {intmax(intn1,intn2);/*函数说明*/ intnum1,num2; printf("inputtwonumbers: \n"); scanf("%d%d",&num1,&num2); printf("max=%d\n",__3__); getch();/*使程序暂停,按任一键继续*/ } 1.intn22.n1>n23.max(num1,num2) 47P设变量a、b为整型,以下语句可以不借助任何变量把a、b的值交换,请填空。 main() {a+=__1__;b=a-__2__;a-=__3__; } 1.b2.b3.b 50P下面程序段是找出整数的所有因子,请填空。 main() {scanf("%d",&x); i=1; for(;__1__) {if(__2__)printf("%3d",i); i++; } } 1.i<=x;2.x%i==0 46/*程序功能: 实现动态数组*/ #include"alloc.h" #include"stdlib.h" main() {int*array=NULL,num,i; printf("Inputthenumberofelement: ");/*提示输入元素的个数*/ scanf("%d",&num); array=(int*)__1__(__2__(int)*num);/*申请动态数组使用的内存块*/ if(__3__)/*内存申请失败: 提示,退出*/ {printf("pressanykeytoquit……"); exit(0); } printf("Input%delements: ",num);/*提示输入元素值*/ for(i=0;i scanf("%d",&array[i]); printf("%delementsare: ",num);/*输出刚输入的num个数据*/ for(i=0;i printf("%d,",array[i]); printf("\b");/*删除最后一个数据后的分隔符","*/ free(__4__);/*释放由malloc()函数申请的内存块*/ } 1.malloc2.sizeof3.array==NULL4.array 21/*[例6.8]由终端键盘输入一字符串,要求从该串中删去一字符*/ main() {charstr1[50],str2[50]; charch; inti=0,k=0; gets(__1__); printf("\ndelete? "); scanf(__2__); for(i=0;__3__! ='\0';i++) {if(str1[i]! =ch) str2[i-k]=str1[i]; elsek=k+1; } str2[__4__]='\0'; printf("\n%s\n",str2); } 1.str12."%ch",&ch3.str1[i]4.i-k 48P下面程序段统计从键盘输入的字符中数字字符的个数,换行符结束,请填空: intn=0,c: c=getchar(); while(__1__) {if(__2__)n++或者__3__ c=getchar();} 1.c! =’\n’2.c>=48&&c<=573.c>=’0’&&c<=’9’ 24/*[例7.4]用递归法计算n! */ /*功能: 通过函数的递归调用计算阶乘*/ longpower(intn) {longf; if(n>1)f=__1__*n; elsef=__2__; return(__3__); } main() {intn; longy; printf("inputainteagernumber: \n"); scanf("%d",&n); y=power(__4__); printf("%d! =%ld\n",n,y); getch(); } 1.power(n-1)2.13.f4.n 25/*[例7.5]写一函数,统计字符串中字母的个数*/ /*功能: 数组元素作为函数实参*/ intisalp(charc)/*查看传过来的C里面的值是否是字符*/ {if(c>='a'&&c<='z'||c>='__1__'&&c<='__2__') return (1); elsereturn(__3__); } main() {inti,num=0; charstr[255]; printf("Inputastring: "); gets(str); for(i=0;str[i]! ='\0';i++) if(__4__)num++; puts(str); printf("num=%d\n",num); getch(); } 1.A2.Z3.04.isalp(str[i]) 53下面程序用变量count统计文件中字符的个数,请在()处填入适当的内容。 #include main() {FILE*fp;longcount=0; if(fp=fopen(“letter.dat”,(“r”)))==NULL) {printf(“cannontopenfile\n”);exit(0); } while(__1__) {(if(fgetc(fp)! =””)__2__; } printf(“count=%ld\n”,count); __3__ } 1.! feof(fp)2.count++3.fclose(fp); 27/*功能: 利用全局变量计算长方体的体积及三个面的面积*/ ints1,s2,s3; intvs(inta,intb,intc)/*值传递按长宽高的顺序*/ {intv; v=a*b*c;s1=a*b;s2=b*c;s3=__1__; return__2__; } main() {intv,l,w,h; clrscr(); printf("\ninputlength,widthandheight: "); scanf("%d%d%d",&l,&w,&h); __3__; printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3); getch(); } 1.a*c2.v3.v=vs(l,w,h) 29/*程序功能: 使用指针变量求解2个整数的升序输出*/ main() {intnum1,num2; int*num1_p=&num1,*num2_p=&num2,__1__; printf("Inputthefirstnumber: ");scanf("%d",num1_p); printf("Inputthesecondnumber: ");scanf("%d",num2_p); printf("num1=%d,num2=%d\n",num1,num2); if(*num1_p>*num2_p)/*如果num1>num2,则交换指针*/ {__2__;num1_p=num2_p;__3__=pointer;} printf("min=%d,max=%d\n",__4__,*num2_p); } 1.*pointer2.pointer=num1_p3.num24.*num1_p 54/*exchange()功能: 交换2个形参指针变量所指向的变量的值*/ /*形参: 2个,均为指向整型数据的指针变量*/ /*返回值: 无*/ __1__exchange(int*pointer1,int*pointer2) {inttemp; temp=*pointer1,__2__,*pointer2=temp; } main() {intnum1,num2,num3; printf("Inputthefirstnumber: "); scanf("%d",&num1); printf("Inputthesecondnumber: "); scanf("%d",&num2); printf("Inputthethirdnumber: "); scanf("%d",&num3); printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); if(num1 exchange(&num1,&num2); if(__3__)exchange(&num1,&num3); if(__4__)exchange(&num2,&num3); printf("%d,%d,%d\n",num1,num2,num3); } 1.void2.*pointer1=*pointer23.num1 59/*[例3.5]已知圆半径radius=1.5,求圆周长和圆面积*/ main()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 题库