第一章习题1.1选择题:⑴一个C程序的执行是( A )。
A)从main()函数开始,直到main()函数结束B)从第一个函数开始,直到最后一个函数结束C)从第一个语句开始,直到最后一个语句结束D)从main()函数开始,直到最后一个函数结束⑵计算机能直接执行的语言是(B)。
A)汇编语言 B)机器语言 C)高级语言 D) A和B⑶一个C程序是由(C)。
A)一个主程序和若干子程序组成B)若干过程组成C)一个或多个函数组成D)若干子程序组成⑷下列说法正确的是(B )。
A) C程序书写格式限制严格,一行必须写一个语句B) C程序书写比较自由,一个语句可以分行写在多行上C) C程序书写格式限制严格,要求一行必须写一个语句,并要求行号D) C程序中一个语句不可以分写在多行上1.2填空题:⑴构成C语言程序的基本单位是函数。
⑵C语言源程序文件的后缀是.c ,经过编译后,生成文件的后缀是,obj,经过连接后,生成文件的后缀是.exe 。
⑶在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。
⑷一个C语言程序必须有而且只能有一个主函数,它的函数名为main。
⑸一个函数有两部分组成,第一部分称为函数首部;第二部分称为函数体。
⑹函数体由符号{开始,用符号}结束。
函数体的前面是声明部分,其后是执行部分。
1.3上机编辑、调试、运行下列程序,发现错误,并改正之。
/*求1 + 2 + 3 + …… + 10的和*/#include <stdio.h>main(){int s,n;sum = 0;n = 1;while(n < 0){sum = sum + n;n = n + 1;}printf("sum = %d \n",sum);}第二章 习 题2.1选择题⑴ 在以下标识符中,( B )是合法的用户标识符。
A ) a#bB ) getchC ) voidD ) ab*⑵ 不合法的八进制数是( B )。
A ) 0B )C )D ) 01⑶ 不合法的十六进制数是( A )。
0xA ) oxffB ) 0XabcC ) 0x11D ) 0x19⑷ 以下选项中正确的整型常量是( B )。
A ) 12.B ) -20C ) 1,000D ) 4 5 6⑸ 以下选项中正确的实型常量是( D )。
A ) 0B ) 3. 1415C ) 0.329×102D ) .871⑹ 以下选项中不正确的实型常量是( B )。
A ) 2.607E -1B ) 0.8103e 3C ) -88.77D ) 871e -2⑺ 以下变量x , y , z 均为double 类型且已正确赋值,不能正确表示数学式子zy x ⨯的C 语言表达式是 ( A )。
A ) x / y *zB ) x *(1/(y *z ))C ) x / y *1 / zD ) x / y / z ⑻ 在C 语言中,字符型数据在存中以( C )的形式存放。
A ) 原码B ) 补码C ) ASCII 码D ) BCD 码⑼ sizeof (float )是( C )。
A ) 一种函数调用B ) 一个不合法的表示形式C ) 一个整型表达式D )一个实型表达式 ⑽ 表达式b =((241 & 15)&&('Z' | 'a'))的值是( B )。
A ) 0B ) 1C ) TRUED ) FALSE⑾ 若变量已正确定义并赋值,符合C 语言语法的表达式是( B )。
A ) a = a + 7;B ) a = 7 + b + c ,a ++C ) int (13.4 % 4)D )a = a + 7 = c + b ⑿ 以下叙述中正确的是( A )。
A )a 是实型变量,C 语言允许进行a = 10,因此可以这样说:实型变量中允许存放整型值B )在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C )执行表达式a = b 后,在存中a 和b 存储单元中的原有值都将被改变,a 的值已由原值改变为b 的值,b 的值由原值改变为0D )已有a = 3,b = 5。
当执行了表达式a = b ,b = a 之后,已使a 中的值为5,b 中的值为32.2填空题⑴ 数学式子cos 2x ·ba b a -+写成C 语言表达式是 cos(x)*cos(x)*((a+b)/(a-b)) 。
⑵ a 是整型变量,能将a 清零的表达式是 a=0 ;能将a 中的各二进制为均置成1的表达式是 a=-1 。
⑷若a,b和c均是int型变量,则执行下面表达式后,a值为6 ,b值为4,c值为2。
a =(b = 4)+(c = 2)⑸经过下述赋值后,变量x的数据类型是int 。
int x = 2;double y;y=(double)x;⑹若x和n均是整型变量,且x和n的初值均为5,则执行下面表达式后,x值为10 ,n值为 6 。
x += n ++ x=x+n++⑺若有定义:int b = 7;float a = 2.5,c = 4.7;则下面表达式的值为 4.5。
a+(int)(b/3*(int)(a+c)/2)%4⑻若有定义:int m=7,y=2;则执行下面表达式的值后,y值为-24 。
y += y-=m*= y⑼表达式8 / 4*(int)2.5 /(int)(1.25*(3.7 + 2.3))的类型为整型。
⑾条件“-1 < x < 3或x <-99”的C语言表达式是(x>-1&&x<3)||(x<-99)。
⑿若x和a均是整型变量,则执行表达式①后的x值为12 ,执行表达式②后的x值为4 。
① x =(a = 4,6*2)② x = a = 4,6*2⒀一个字节包含 8 个二进制位,在一个字节中能存放的最大(十进制)整数是,它的二进制数的形式是;最小(十进制)整数是,它的二进制数的形式是。
⒁当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是,它的二进制数的形式是;最小(十进制)整数是,它的二进制数的形式是。
2.3改错题⑴ #include stdio.h;#include<stdio.h> 正确main();(多分号) /*main function*/{float r,s; /*r is radius, s is area of circular*/r = 5.0;s = 3.14159*r*r;printf("%f\n",s);⑵ #include stdio.h (缺<>号)#include<stdio.h> 正确main(); /*main function*/{float a,b,c,v; /*a,b,c are sides,v is volume of cube*/a = 2.0;b = 3.0;c = 4.0;(缺 ;号)v = a*b*c;printf("%f\n",v);(缺;号)}第三章习题3.1 什么是C语言的基本执行单位?C语言的语句是如何分类的?3.2C语言的流程控制语句有哪几种?3.3 结构程序设计的基本结构有哪几种?3.4C语言的输入输出操作是由语句来实现的吗?3.5 顺序结构程序的特点是什么?3.6 输入下面的程序,观察运行结果。
#include <stdio.h>main(){float a1,a2;double b1,b2;a1=3141.59;a2=0.000001;b1=3141.59;b2=0.000001;printf("%f,%lf\n",a1+a2,b1+b2);}答案:3141.590089,3141.5900013.7 输入下面的程序,观察运行结果。
#include <stdio.h>main(){ char ch;int k;ch='a';k=66;printf("%c,%d,%x,%o,%d,%c",ch,ch,ch,ch,k,k);}答案:a,97,61,141,66,B3.8 输入下面的程序,观察运行结果。
#include <stdio.h>main(){float x;double y;x=123.45678;y=123.45678;printf("%-4.2f,%-6.2e\n",x,y);}答案:123.46,1.2e+023.9输入下面的程序,观察运行结果,并说明程序的功能(注意:运行时输入大写字母)。
#include <stdio.h>void main(){ char c1,c2;c1=getchar( );printf("%c,%d\n",c1,c1);c2=c1+32;printf("%c,%d\n",c2,c2);}答案:A,65a,97该程序是将键盘输入的大写字母转换为对应的小写字母。
3.10 编写程序:求三个正整数(小于32767)的算术平均值。
#include <stdio.h>void main(){int a,b,c;double d;printf("\n input a,b,c=");scanf("%d,%d,%d",&a,&b,&c);d=(a+b+c)/3.0;printf("\nd=%f",d);}3.11 编写程序:已知圆的半径,求圆的周长和面积(要求半径值由键盘接受)。
#include <stdio.h>void main(){int r;double k,s;printf("\n input r=");scanf("%d",&r);k=2*3.14159*r;s=3.14159*r*r;printf("\nL=%f\nS=%f",k,s);}3.12 编写程序:计算a+b2-6的值,其中:a=4,b=3; a=5,b=2; a=2,b=8。
#include <stdio.h>void main(){ float a,b,h;printf("\n input a,b=");scanf("%f,%f",&a,&b);h=a+b*b-6;printf("\na=%f,b=%f\nh=%f",a,b,h);}第四章习题4.1 判断下列述的真假:⑴在三种形式的if语句中,在if关键字之后均为表达式。