C语言程序设计配套习题.docx
- 文档编号:30170950
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:46
- 大小:29.56KB
C语言程序设计配套习题.docx
《C语言程序设计配套习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计配套习题.docx(46页珍藏版)》请在冰豆网上搜索。
C语言程序设计配套习题
C语言程序设计配套习题
第一章c语言概述
一、填空题
1.用turboc执行c程序时,需要编译源程序,应该选择_________.
2.用turboc执行c程序时,需要显示屏幕时,应该选择_________.
3.c语言属于计算机语言里的______语言。
二、请画出c程序的上机步骤
第二章算法
一、填空题
1.为了表示一个算法,常用的表示方法有___________________________________________.
2.算法应该具有的特点有_______、_________、_________、___________、__________。
3.三种基本结构是_______、____________、___________.
二、用伪代码表示1+3+5+…+99
三、什么叫做结构化程序设计,主要内容是什么?
第三章数据类型、运算符与表达式
一、选择题
1、数据的基本类型包括()
A)整型B)字符型C)实型D)枚举型
2、整型常量的表示方法有()
A)十进制B)八进制C)十六进制
二、填空题
1、转义字符”\r”表示_________________。
2、i=4,经过运算i=i++后,i的值是多少______________.
3、10的原码是___________________,补码是___________________________.
三、写出程序运行的结果
main()
{intI,j,m,n;
i=6;
j=9;
m=12;
n=5;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
第四章顺序程序设计
一、选择题
1.若inta,b;scanf("%d%d",&a,&b);不可以用(A)作为输入的分隔符。
A),B)空格C)回车D)TAB键
2.阅读以下程序,当输入数据的形式是:
25,13,10
main(){
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("x+y+z=%d",x+y+z);}
A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值
3.已知ch是字符型变量,下边正确的赋值语句是(B)
A)ch='123';B)ch='\xff';C)ch='\08';D)ch="\";
4.设x,y均为float型变量,则以下不合法的赋值语句是(B)
A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;
二、填空题
1.以下程序的输出结果是(a=+1124,a=1124,x=30.141500,x=30.142)
main(){
inta=1124;
doublex=30.1415;
printf("a=%+6d,a=%-6d,x=%f,x=%7.3f",a,a,x,x);}
2.以下程序的输出结果是(36.750000)
main(){
intx=10;floaty=26.75;
printf("%f",x+y);}
3.若x为int型变量,则执行以下语句后x的值是(-14)
x=7;
x+=x-=x+x;
三、编程题
1.编程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf
函数输出这两个字符。
并思考以下问题:
(1)变量c1,c2应定义为字符型或整
型?
还是二者皆可?
(2)要求输出c1和c2的ASCII码,应如何处理?
用putchar
函数还是printf函数?
(3)整型变量和字符型变量是否在任何情况下都可以
互相代替?
2.设圆半径r=2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积。
用scanf输
入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数
字。
第五章选择结构程序设计
一、填空题
1.有intx=3,y=4,z=5;则
A)表达式!
(x>y)+(y!
=z)||(x+y)&&(y-z)的值为
(1)。
B)表达式x+y>z&&y==z的值为(0)
C)表达式x||y+z&&y-z的值为
(1)
D)表达式!
(x>y)&&!
z||1的值为
(1)
E)表达式!
(x==y)&&!
(y==z)||0的值为(0)
F)表达式!
(x+y)+z-1&&y+z/2的值为
(1)
2.如下程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数
字,否则输出两数之和,请在()内填入正确内容。
main()
{inta,b,(x),y;
scanf("%d%d",&a,&b);
x=a*a+b*b;
if((x>100))
{y=(x/100);printf("\na2+b2>100,%d",y);}
elseprintf("\na2+b2<=100%d",a+b);
}
3.如下程序完成判断输入的正整数是否既是5又是7的整数倍。
若是,则输出yes,否则输出no,请在()内填入正确内容。
main()
{intx;
printf("\npleaseinputadata:
");
scanf("%d",&x);
if((x%5==0)&&(x%7==0))
printf("yes");
else(printf("no");
}
4.下面程序的执行结果是(3)
main()
{intc,a;
a=(float)(7/2)>3.5?
(c=2,c+2):
3;
printf("%d\n",a);
5.下面程序的执行结果是(14,4)
main()
{inta=10,b=0;
if(a==12)
{a=a+1;
b=b+1;
}
else
{
a=a+4;
b=b+4;
}
printf("%d,%d",a,b);
}
二、编程题
1.根据以下函数关系,对输入的每个x值,计算出相应的Y值。
X<0I=-1
0 x>=40I=4 I=-1y=0 I=0y=x I=1y=1 I=2y=30 要求用两种方法实现 1)用if-else实现(自己编程)。 2)用switch语句实现(填空完成程序) main() {intx,i; floaty; scanf("%d",&x); if(x<0)i=-1; elseif(x>=40)i=4; elsei=x/10; switch(i) { case-1: y=0;break; case0: (y=x);break; case1: y=10;break; case2: y=30;(break); default: printf("errorinput\n"); } printf("y=%f",y); } 2.编程实现以下的功能: 输入两个运算数(data1和data2)及一个运算符(op), 计算表达式data1opdata2的值,其中op可为+,-,*,/。 3.有三个整数a,b,c,由键盘输入,输出其中最大的数。 4.(选作题)给一个不多于3位的正整数,要求: 1)求出它是几位数; 2)分别打印出每一位数字。 第六章循环控制 上机调试以下程序,并写出以下程序的输出结果。 1.当输入为5时,分析下列程序的运行结果: main() {inti,n; doublex,s=0; scanf("%d",&n); for(i=1,x=1;i<=n;i++,x+=1) s+=1/x; printf("s=%.2f\n",s); } 2.写出下列程序的运行结果: main() { intk,num,sum; sum=num=0; for(k=1;k<=20;k++) {if(k%2! =0) {sum+=k; continue; } num++; } printf("sum=%d,num=%d\n",sum,num); } 3.分析以下程序的运行结果: main() {intn1=9,n2=6,n3=6,n4=6; inti=0,j=0,k=0; while(n1>++n3)i++; for(;n1>n2;++n2)j++; dok++;while(n1>n4++); printf("i=%d,j=%d,k=%d\n",i,j,k); } 4.编程计算1*2*3+3*4*5+…+99*100*101的值。 解题指导: 可用一个循环变量i来计数,增量为2。 先令i=1,计算i*(i+1)*(i+2),然后将i加2,再计算i*(i+1)*(i+2),依次循环到i=99。 5.编写一个程序,输入两个正整数,求它们的最大公约数和最小公倍数。 解题指导: 可用辗转相除法求最大公约数。 6.用一元五角人民币兑换1分、2分和5分的硬币(每一种都要有)共100枚,问共有几种兑换方案,每种方案各换多少枚? 编程求解。 解题指导: 因为每一种硬币都要有,所以5分的硬币最多有28枚,2分的硬币最多有73枚,可用两层循环编程求解。 第七章数组 一、选择题 1.若有说明: inta[10];则对数组元素的正确引用是(A) A)a[10];B)a[3.5]C)a(5)D)a[10-10] 2.若有说明语句: int[3][4];则对a数组元素的正确引用是(C) A)a[2][4]B)a[1,3]C)a[1+1][0]D)a (2) (1) 3.判断字符串a和b是否相等,应当使用(D) A)if(a==b)B)if(a=b)C)if(strcpy(a,b))D)if(strcmp(a,b)) 二、填空题 1.若有说明: inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(3) 2.下面程序的运行结果是(LBLMNP) #include #include main() {chara[80]="AB",b[80]="LMNP"; inti=0; strcat(a,b); while(a[i++]! ='\0')b[i]=a[i]; puts(b); } 3.下面程序的运行结果是(11235813213455) main() {inti,f[10]; f[0]=1;f[1]=1; for(i=2;i<10;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<10;i++) {if(i%4==0)printf("\n"); printf("%3d",f[i]); } } 三、编程题 1.用选择法对10个整数按升序排序 #defineN10 main() {inti,j,min,temp; staticinta[N]={5,4,3,2,1,9,8,7,6,0}; printf("\nThearrayis: \n");/*输出数组元素*/ for(i=0;i printf("%5d",a[i]); for(i=0;i {min=(0); for(j=i+1;j if(a[min]>a[j])min=j; ({temp=a[min];a[min]=a[j];a[j]=temp});/*数据交换*/ } printf("\nThesortednumbers: \n");/*输出排序结果*/ for(i=0;i printf("\n"); } 2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个 元素的值。 如果该数不在数组中,则打印出“无此数”。 读懂下面的程序,并填空。 变量说明: top,bott: 查找区间两端点的下标;loca: 查找成功与否的开关变量。 #include #defineN15 main() {inti,j,number,top,bott,min,loca,a[N],flag; charc; printf("Input15numbers(a[i]>a[i-1])\n");/*由大到小*/ scanf("%d",&a[0]);/*输入第1个数据*/ i=1; while(i {scanf("%d",&a[i]);/*输入下一个数据*/ if(a[i]>=a[i-1])/*是否大于前一个数*/ i++; else {printf("Repeatinputnumbera[i]"); printf("must>=%d\n",a[i-1]); } } printf("Inputthefindednumber: ");/*输入需要查找的数*/ scanf("%d",&number); loca=0; top=0; bott=N-1; if((numbera[N-1])) loca=-1;/*不在范围内*/ while((loca==0)&&(top<=bott)) {min=((top+bott)/2); if(number==a[min]) {loca=min; printf("Theserialnumberis%d.\n",loca+1); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 配套 习题