
《C语言程序设计习题与上机指南》答案.docx
9页本文格式为Word版,下载可任意编辑《C语言程序设计习题与上机指南》答案 第一片面习题篇 第一章C语言概述 一.单项选择题 1.以下说法中正确的是(C) A)C语言程序总是从第一个函数开头执行 B)在C语言程序中,要调用函数务必在main()函数中定义 C)C语言程序总是从main()函数开头执行 D)C语言中的main()函数务必放在程序的开头片面 2.一个C语言程序是由(B) A)一个主程序和若干子程序组成B)函数组成 C)若干过程组成D)若干子程序组成 3.C语言规定,在一个源程序中,main函数的位置(C) A)务必在最开头B)务必在系统调用的库函数的后面 C)可以任意D)务必在结果 4.以下表达不正确的是(D) A)一个C源程序可由一个或多个函数组成 B)一个C源程序务必包含一个main函数 C)C程序的根本组成单位是函数 D)在C程序中,解释只能位于一条语句的后面 5.以下关于C语言的说法不正确的是(D) A)C语言既有高级语言的功能,也具有低级语言的一些功能 B)C语言中的一条执行语句都务必用分号终止 C)解释可以展现在程序中任意适合的地方 D)include命令行后面务必加分号 6.用C语言编写的代码程序(B)。
A)可以立刻执行B)是一个源程序 C)经过编译即可执行D)经过编译解释才能执行 7.用高级语言(如C语言)编写的程序称为(A) A)源程序 B)目标程序C)可执行程序D)编译程序 8.一个函数的组成有(A) A)函数首部和函数体B)函数名和函数的声明片面 C)主函数和子函数D)声明片面和执行片面 9.在C语言中,用来表示“取地址”的符号是(B) A)# B)& C)* D)@ 10.C语言是计算机高级语言,它适合于作为系统描述语言,它(A) A)既可用来写系统软件,也可用来写应用软件 B)只能写系统软件,不能用来写应用软件 C)不能写系统软件,只能用来写应用软件 D)既不能写系统软件,也不能写应用软件 二.填空题 1.C语言用函数作为程序的模块单位,便于实现程序的模块化 2.C语言允许直接访问物理地址,能举行位操作 3.用C语言编写的程序,每一个语句和数据定义的结尾务必要有一个分号 4.每个C程序中务必有一个main()函数 5.C程序中的函数体由{}括起来 6.C程序中的“\\n”表示在程序运行中换行 7.C程序中,“/*??*/”表示解释片面。
8.C程序中,一个函数由函数首部和函数体组成 9.一个C程序总是从main()函数开头执行的,不管该函数在整个程序中的位置如何 10.在纸上编好一个C源程序后,要经过编辑、编译、连接、运行这几个步骤举行上机运行 三.判断题 1.C语言不具有低级语言的特性错) 2.C语言之所以也被称为中级语言,是由于它比高级语言的功能要少,而比低级语言的功能多错) 3.C语言与其他高级语言一样具有布局化的操纵语句对) 4.C语言允许直接访问物理地址对) 5.每一个C程序务必有一个main函数对) 6.C程序的语句结果应有一个分号对) 7.C程序中的main函数务必放在整个程序的最前头错) 8.计算机高级语言对源程序举行翻译有两种方式:编译和解释对) 四.编程题 1.编写一个C程序,输出以下信息: ************ Iamastudent. ************ #include /*包含头文件,为了使用printf和scanf语句,留神句末无分号*/ voidmain() { printf(“***********\\n”);/*\\n的作用相当于回车*/ printf(“Iamastudent.\\n”); printf(“***********\\n”); } 2.编写一个C程序,输入a、b两个数,输出其中大的数。
只用一个主函数) #include voidmain() {inta,b; printf(“Pleaseinputa,b:\\n”); scanf(“%d,%d”, /*留神输入两个数之间用逗号分隔*/ if(a>b)printf(“%d”,a); elseprintf(“%d”,b); } 3.编写一个C程序,输入a、b、c三个数,输出其中最大数只用一个主函数) #include voidmain() { inta,b,c,max; printf(“Pleaseinputa,b,c:\\n”); scanf(“%d,%d,%d”, max=a; if(a
A)*B)/C)=D)% 3.在C程序中,以下不正确的表达是(D) A)逗号运算符的优先级最低 B)ABC和abc是两个不同的变量 C)若a和b类型一致,在执行了赋值表达式a=b后,b中的值将放入a中,而b的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据 4.设有intx=8,表达式x++*1/3的值是(A) A)2B)3C)8D)9 5.若m,x,y,z都是整型变量,那么计算表达式m=(x=5,y=10,z=25)执行后,m的值为(C) A)5B)10C)25D)40 6.设变量i是int类型,f是float型,d是double型,执行表达式5+?i?-f*d,其结果的数据类型为(B) A)int型B)double型C)float型D)非法表达式 7.设变量i是int类型,执行语句i=?A?+2.5后,正确的表达是(C) A)i的值是字符DB)i的值是字符A的ASCII值加上2.5 C)i的值是字符A的ASCII值加上2D)非法表达式 8.以下是用户自定义标识符的是(B) A)intB)_xyC)2xyD)3-xy 9.下面与x=y++完全等价的表达式是(A)。
A)x=y,y=y+1B)x=x+1,y=xC)x=++yD)x+=y+1 10.已知各变量的类型说明如下: intk,a,b; longw=8; floatx=2.56; 以下不符合C语言语法的表达式是(A) A)x%5B)w-=5C)k=(a=8,b=6,a-b)D)a+=a-=(b=2)*(a=5) 11.运行以下程序段时编译出错,其理由是(D) charc1='a',c2='123'; printf(\A)字符串要用\表示 B)'123'只能赋值给字符数组 C)c2是字符变量,不能用%d格式输出 D)c2是字符变量,只能赋以字符常量 12.若定义floata;,现要从键盘输入a数据,其整数位为3位,小数位为2位,那么选用(A) A)scanf(\ B)scanf(\.2f\C)scanf(\.2f\D)scanf(\ 13.若定义doublet;,那么表达式t=1,t+5,++t的值为(B) A)1.0 B)2.0 C)6.0D)7.0 14.已知各变量的类型说明如下,那么C语言中错误的表达式是(A) intk,a,b; unsignedlongw=5; doublex=1.42; A)x%(-3) B)w+=2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4*(a=3)) 15.以下程序段的运行结果是(C)。
inta=0,b=0,c=0; if(a printf(\A)1,1 B)1,0 C)0,0 D)0,1 二.填空题 1.在C语言中,一个float型数据在内在中所占的字节数为4,一个double型数据在内在中所占的字节数是8 2.下面程序的输出结果是28 main() { inta=2,b=3,c=4; a*=16+(b++)-(++c); printf(“%d”,a); } 3.下面程序的输出结果是5 main() { intx=17,y=26; printf(“%d”,y/=(x%=6)); } 4.执行下面程序段后,c3中的值是0 intc1=1,c2=2,c3; c3=1.0/c2*c1; 5.举行以下变量定义后,表达式a*b+d-c的类型是double chara; intb; floatc; doubled; 6.下面程序的输出结果是8,10 main() { intx=010,y=10; printf(“%d,%d\\n”,x,y); } 7.下面程序的输出结果是12。
main() { intx=3,y=5; printf(“%d\\n”,x=(x--)*(--y)); } 8.已知字母A的ASCII码是十进制数65,设c为字符型变量,那么表达式c=?A?+?5?-?2?的值为D或68 9.下面程序的输出结果是52 main() { intx=065; printf(“%d\\n”,--x); / } 10.下面程序的输出结果是25,21,37 main() { inta,b,c; a=25; b=025; c=0x25 printf(“%d,%d,%d\\n”,a,b,c); } 11.下面程序的输出结果是48 main() { intx=0110; printf(“%x\\n”,x); } 12.下面程序的输出结果是20220.000000 main() { charc; intn=100; floatf=10; doublex; x=f*=n/=(c=5); printf(“%d%f\\n”,n,x); } 13.写出下面程序的运行结果。
请用∪表示空格) main() { charc1=?a?,c2=?b?,c3=?c?,c4=?\\101?,c5=?\\116?; printf(“a%c∪b%c\\tc%c\\tabc\\n”,c1,c2,c3); printf(“\\t\\b%c∪%c\\n”,c4,c5); } — 9 —。
