C语言习题
更新时间:2023-09-30 18:42:01 阅读量: 综合文库 文档下载
习题一
【习题1-1】C语言源程序最多可能由________________部分组成?
A) 预处理部分 B)变量说明部分 C) 函数原型声明部分 D)函数定义部分
【习题1-2】一个完整的C语言源程序最少必须有_______。
A)若干个主函数 B)若干个函数 C)且只能有一个主函数 D)一个函数
【习题1-3】C语言以函数为源程序的基本单位最主要有利于_______。
A)程序设计结构化 B)程序设计模块化 C)程序设计简单化 D提高程序设计有效性
【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必
须要先经过_______________________________________。 A)编辑和链接 B)编译和链接 C)修改和运行 D运行并输入数据
【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?从中了解程序的开发过程。
习题二
一、单项选择题
【习题2-1】 已知’A’的ASCII代码是65,以下程序的输出结果是( ) #include \main( )
{ int c1=65,c2=66; printf(\; }
A. 因输出格式不合法,输出错误信息 B. 65,66 C. A,B D. 65,66
【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( )
A. a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C. a=t,t=b,b=a; D. t=b;b=a;a=t;
【习题2-3】 若k是整型变量,则以下程序段的输出是( ) k=-8567;
printf (“|%d|\\n”,k);
A. 输出格式不正确 B. 输出为|008567|
C. 输出为|8567| D. 输出为|-8567| 【习题2-4】下列可作变量的标识符是( ) A. 3rt B. je_c C.$89 D. a+6
【习题2-5】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A.必须为字母或下划线 B.必须为下划线 C.必须为字母
D.可以是字母、数字和下划线中的任一种字符
【习题2-6】 C语言并不是非常严谨的算法语言,在以下关于C语言的不严谨的叙述中,错误的说法是( )
A. 大写字母和小写字符的意义相同
B. 有些不同类型的变量可以在一个表达式中运算
C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D. 同一个运算符号在不同的场合可以有不同的含义 二、简答题
【习题2-7】 C语言数据类型有哪几类?基本数据类型包括哪几类?
【习题2-8】 C语言中十进制、八进制和十六进制整常量是如何表示的? 【习题2-9】 C语言为什么规定对所用到的变量“先定义,后使用”,这样做有什么好处?
【习题2-10】C语言中的语句有几类?控制语句有哪些?
【习题2-11】 怎样区分表达式和表达式语句?为什么有人称C为表达式语言?
【习题2-12】字符常量与字符串常量有什么区别? 【习题2-13】下面各数用八进制和十六进制数表示: (1)10 (2)32 (3)75 (4)-617 (5)-111 (6)2483 (7)-28654 (8)21003 三、阅读程序写结果或填空
【习题2-14】写出以下程序的运行结果: #include
char c1='a',c2='b',c3='c',c4='\\101',c5='\\116'; printf(\ printf(\}
【习题2-15】写出以下程序的运行结果: #include
int n=177;
printf(\}
【习题2-16】写出以下程序的运行结果: #include
int a,n=0; n+=(a=10);
printf(\}
【习题2-17】写出以下程序的运行结果: #include
int a=5,b=7;
float x=67.8564,y=-789.124; char c='A';
long n=1234567; unsigned u=65535; printf(\printf(\printf(\
printf(\
printf(\printf(\
printf(\printf(\printf(\
printf(\}
【习题2-18】写出以下程序的运行结果: #include
int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(\}
【习题2-19】下面运算表达式的值是: x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7
【习题2-20】下面运算表达式的值是: (float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
【习题2-21】 写出下面赋值表达式运算后a的值,设原来a=12; (1)a+=a (2) a-=2 (3)a*=2+3 (4) a/=a+a
(5)a%=(n%=2),n 的值等于5 (6)a+=a-=a*=a
【习题2-22】 数学表达式:-5
【习题2-23】 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf()输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编写程序。
5【习题2-24】 输入一个华氏温度,要求输出摄氏温度。公式为c=9(F-32),输出要有文字说明,取2位小数。
【习题2-25】 编程序,用getchar()函数读入两个字符给cl、c2,然后分别用putchar()函数和printf()函数输出这两个字符。并思考以下问题:
(1)变量c1、c2应定义为字符型或整型?抑或二者皆可? (2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整型变量与字符变量是否在任何情况下都可以互相代替?如“char c1,c2;”与“int cl,c2;”是否无条件地等价?
【习题2-26】编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。输出计算结果要求有文字说明,并取小数点后两位数字。
【习题2-27】编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。
习题三
一、单项选择题
【习题3-1】“基本结构”不具有以下特点( ) A. 只有一个入口,只有一个出口 B. 没有死循环 C. 没有永远执行不到的语句 D. 不允许退出循环 【习题3-2】 在流程图中,菱形框表示的操作是( ) A. 数据的输入输出 B. 程序的开始 C. 条件判断 D. 赋值 【习题3-3】以下程序的运行结果是( ) #include
{int m=5,n=10;
printf(\}
A. 5,9 B.6,9 C. 5,10 D.6,10 【习题3-4】逻辑运算符两侧的数据类型( )
A. 只能是0和1 B. 只能是0或非0正数 C. 只能是整型或字符型数据 D. 可以是任何类型的数据 【习题3-5】下列关系表达式结果为假的是( ) A. 0!=1 B. 2<=8
C. (a=2*2)= =2 D. y=(2+2)= =4 【习题3-6】下列运算符中优先级最低的是( ) A. ?: B. += C. >= D. = =
【习题3-7】写出下面各逻辑表达式的值。设a=3,b=4,c=5。 a+b>c&&b==c a||b+c&&b-c !(a>b)&&!c||1
!(x=a)&&(y=b)&&0 !(a+b)+c-1&&b+c/2 二、简单题
【习题3-8】什么是算法?算法有哪些特性?从日常生活中举出几个算法的例子。
【习题3-9】算法有哪些描述方法?各有什么优缺点? 【习题3-10】结构化的算法有哪几种结构?试分别描述。
【习题3-11】选择语句和循环语句对条件的判断的标准是什么?(即何值为真、何值为假?)
三、用传统流程图表示求解以下问题的算法。
【习题3-12】有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反);
【习题3-13】依次将10个数输入,要求将其中最大的数打印出来; 【习题3-14】有三个数a、b、c,要求按大小顺序把它们打印出来; 【习题3-15】求1+2+3+…+100;
【习题3-16】判断一个数n能否同时被3和5整除; 【习题3-17】将100~200之间的素数打印出来; 【习题3-18】求两个数m和n的最大公约数;
【习题3-19】求方程式ax2+bx+c=0的根(a、b、c从键盘输入)。 四、编写程序题 【习题3-20】有一函数
?x (x?1)
? y??2x-1 (1?x?10) ?3x-11 (x?100) ?
写一程序,输入x,输出y值。
【习题3-21】给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。
【习题3-22】企业发放的奖金根据利润提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000
要求:(1)用if语句编程序;(2)用switch语句编程序。 【习题3-23】输入4个整数,要求按从小到大的顺序输出。
【习题3-24】输入两个正整数m和n,求其最大公约数和最小公倍数。 【习题3-25】输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
【习题3-26】编写程序实现功能:输入整数a和b,若a2+b2>100,则输出a2+b2之和的百位以上的数字,否则直接输出a2+b2的和。
【习题3-27】编写程序判断输入的正整数是否既是5又是7的整数倍。若是则输出“yes”,否则输出“no”。
【习题3-28】编写程序实现功能:根据表3-1的函数关系,对输入的每个x的值,计算出相应的y值。
表3-1 习题3-28的函数关系 x y x<0 0 0 【习题3-29】编写程序实现,输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一: (1)同时被3、5、7整除; (2)能被其中两个数整除(要指出是哪两个数); (3)能被其中一个数整除(要指出是哪个数); (4)不能被3、5、7中任意一个整数整除。 ? -1 (x<0) ?【习题3-30】用switch编程实现以下函数关系:y?? 0 (x=0) ? 1 (x>0) ?【习题3-31】编写程序,用switch实现:对于给定的百分制成绩,改成相应的A、B、C、D、E表示,90分以上为A,80~89为B,70~79为C,60~69为D,60以下为E。 【习题3-32】编写程序实现功能:输入一个复数,输出其共轭复数,如,输入2+3i<回车>,输出2-3i。 【习题3-33】求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。 【习题3-34】求?n!(即求1!+2!+3!+4!+…+20!)。 n?120【习题3-35】求?k+?k+?2k?1k?1k?110050101k 。 【习题3-36】打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。 【习题3-37】每个苹果0.8元,的一天买了2个苹果;从第二天开始,每天买前一天的两倍,直到每天购买的苹果个数达到不超过100的最大值,编写程序求每天平均花多少钱。 【习题3-38】试编写程序,找出1~99之间的全部同构数。同构数是这样一组数,它出现在平方数的右边。例如,5是25的右边数,25是625的右边数,所以5和25都是同构数。 【习题3-39】假设x、y是整数,编写程序求xy的最后3位数,要求x、y从键盘输入。 【习题3-40】一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1,2,3 【习题3-41】有一分数序列 21, 32,,, 3558138, 2113,… 求出这个数列的前20项之和。 【习题3-42】一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高? 【习题3-43】猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。 * *** 【习题3-44】编程打印出以下图案。 ***** ***** ** ***** 【习题3-45】用迭代法求x=a。求平方根的迭代公式为 xn+1= 12(xn+a/xn) 要求前后两次求出的x的差的绝对值小于10-5 。 【习题3-46】用牛顿迭代法求下面方程在1.5附近的根。 2x3-4x2+3x-6=0 【习题3-47】两个乒乓球队进行比赛,各出3人。甲队为A、B、C 3人,乙队为X、Y、Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程序找出3对赛手的名单。 习题四 一、单项选择题 【习题4-1】一个C程序的执行是从 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 【习题4-2】以下叙述正确的是 。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 【习题4-3】以下叙述正确的是___________。 A)main函数不可以有返回值 B) main函数不可以有参数 C)函数可以有多个返回值 D)函数的形参可以是静态变量 【习题4-4】以下叙述正确的是___________。 A)void类型的函数体中不可以有return语句 B) void类型的函数体中可以有return语句 C) 函数体中不可以有多个return语句 D) 函数体中定义的变量名称与形式参数的名称可以相同 【习题4-5】以下叙述正确的是___________。 A)一个程序文件中定义的内部函数,其他文件可以调用它 B)一个程序文件中定义的内部函数,其他文件不可以调用它 C)不同文件中定义的内部函数不可以有相同的名称 D)函数的定义不能放在调用它的函数之后 【习题4-6】在由多个文件构成的C程序中,以下叙述正确的是________。 A)外部变量与局部变量不能同名 B)不同程序文件中可以定义相同名称的内部变量 C)只能把外部变量指定为静态存储方式 D)只能把局部变量指定为静态存储方式 【习题4-7】以下叙述正确的是___________。 A) 一个C程序必须由多个函数组成 B)一个C源程序必须包括宏命令 C)C源程序的宏命令以分号标明命令行的结束 D) C注释可以位于源程序的任意位置 二、判断题(正确用×错误用√标记) 【习题4-8】宏替换时先求出实参表达式的值,然后代入形参求值。 ( ) 【习题4-9】.在C语言中,函数不可以嵌套定义,但宏可以嵌套定义。( ) 【习题4-10】所有的递归问题都可以用非递归算法来实现。 ( ) 【习题4-11】在C语言中,不同函数体内定义的变量可以同名。 ( ) 【习题4-12】多个文件组成的C语言程序,其中各个文件中可以定义同名函数。 ( ) 【习题4-13】在C语言中,一个函数只能被它所在文件的其它函数调用,称之为内部函数。 ( ) 三、阅读程序写结果或填空 【习题4-14】下列程序执行后的输出结果是_________。 int fun(int k) {static int s=0; while(k>0) s=s+k--; return s; } main( ) { int s,t; s=fun(4);t=fun(5); printf(\} 【习题4-15】下列程序执行后的输出结果是_________。 #include \int a=0; main( ) {int i; for(i=1;i<=3;i=i+1) { static int b=0; int c=1; a++;b++;c++; printf(\} } 【习题4-16】下列程序执行后的输出结果是_________。 #include \int func(int n) {int s; if(n<=1) s=1;else s=2+func(n-1); return s; } main( ) { int k=1, s=0; while(k<=4) {s=s+func(k);k++;} printf(\} 【习题4-17】下列程序执行后的输出结果是_________。 #define M(a,b) (a)>(b)? (a):(b) main( ) {int i=10,j=15; printf(“%d\\n”,10*M(i,j)); } 【习题4-18】下列程序的输出结果是: #include “stdio.h” #define SQR(x) x*x main() {int a,k=3; a=SQR(k+1); printf(“%d”,a); } 【习题4-19】以下程序运行的结果是 long f(int n) {long s; if(n= =1||n= =2) s=2; else s=n+f(n-1); return(s); } main( ) { long x; x=f(4); printf(\ } 【习题4-20】下列程序的输出结果是________? #define Tap(x) 2*x+1 main( ) {int a=6,k=2,m=1; a+=Tap(k+m); printf(“%d”,a); } 【习题4-21】在以下程序的下划线处填写适当的语句使程序执行的结果4,16,256。 test( ) { int x=2; x=x*x;printf(\ } main( ) {test( );test( );test( );} 【习题4-22】下列程序的输出结果是 #include {static int a=10; int b=++a; return(a+b+c);} main( ) {printf(“%d”,f(f(5)));} 【习题4-23】以下函数调用语句中实参的个数是________? Sub1((x1,x2),(x3,x4,x5),x6) 四、程序设计题 【习题4-24】编写一个递归函数计算 1+X+2X2+3X3+???+nXn 1 n=0 F(n,x)= F(n-1,x)+n Xn n>0 【习题4-25】编写递归程序的输出如右所示的结果 * *** ***** 【习题4-26】编写递归程序的输出杨辉三角形 (?1)【习题4-27】编写程序计算: S= ? 直到N!>106为止。 N! 【习题4-28】编写程序计算1~100之间的素数,并按照由大到小的次序输出。 N?1N?1习题五 一、单项选择题 【习题5-1】在C语言中,数组名代表了__________。 A) 数组的全部元素值 B)数组中第一个元素的值 C) 数组中元素的个数 D)数组中第一个元素的地址 【习题5-2】不能把字符串\赋予数组a的语句是_______ 。 A)char a[8]={'c','h','i','n','a'} B)char a[]=\ C)char a[8];a=\ D)char a[8];strcpy(a,\ 【习题5-3】设有如下定义语句: int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下面是正确的数组元素的是 。 A)a[a[2]+1] B)a(4) C)a[10] D)a[a[4]+5] 【习题5-4】设a,b是两个已定义的字符数组,则下面语句中正确的是 。 A)gets(a,b); B)scanf(\C)scanf(\ D)gets(\ 【习题5-5】设有定义: int j=2,a[]={1,2,3,4,5}; 则数组a[j]的值为 。 A)2 B)3 C)4 D)5 【习题5-6】C语言中,一维数组下标的最小值是 。 A)随便 B)根据说明 C)1 D)0 【习题5-7】下面描述中不正确的是 。 A)字符数组中可以存放字符串 B)可以对字符数组进行整体输入、输出 C)可以对任何数组进行整体输入、输出 D)不能通过赋值运算符\对字符数组进行整体赋值 【习题5-8】若有说明: char a[]=\ char b[]={'A','B','C','D','E','F'}; 则下面描述中正确的是 。 A) a数组长度比b数组长 B) a和b不相同,a是指针数组 C) a数组和b数组长度相同 D) a和b完全相同 二、阅读程序写结果或填空题 【习题5-9】设有定义语句: char c[][5]={\ 则数组c是 ⑴ 维数组,数组中共有 ⑵ 个元素,数组元素c[0][1]= ⑶ 。 【习题5-10】设有定义语句: char s[15]={\ 则表达式strlen(s)的值为 。 【习题5-11】下面程序是求二维数组a主对角线上的元素和,请在划线处填上恰当的内容,以完成程序的功能。 #include int a[3][3]={1,2,3,2,3,4,3,4,5},s=0,k; for(k=0;k<3;k++) s=s+ ; printf(\ } 【习题5-12】下面程序的功能是将一维整型数组a循环左移一位,第一个数据存放到最后。例如假设数组为3,7,2,6,5,9,则循环左移后数组变成7,2,6,5,9,3。请在划线处填上恰当的内容,以完成程序的功能。 #include int a[10],k,t; for(k=0;k<10;k++) scanf(\ t= ⑴ ; for(k=1;k<10;k++) a[k-1]= ⑵ ; a[9]= ⑶ ; for(k=0;k<10;k++) printf(\ } 【习题5-13】下面程序功能是将数组a,b合并,且合并后的数组也是从小到大排序。请在划线处填上恰当的内容,以完成程序的功能。 #include int a[7]={2,5,8,12,14,19,21},b[5]={13,15,21,25,30},c[12]; int i=0,j=0,k=0,m; while(i<7&&j<5) { if(a[i] } if(i<7) for(m=i;m<7;m++) { c[k]= ⑵ ;k++;} else for(m=j;m<5;m++) { c[k]=b[m];k++;} for(k=0; ⑶ ;k++) printf(\ } 【习题5-14】阅读下面程序,写出运行结果。 #include int m,n; for(m=1;m<6;m++) { for(n=5;n>=m;n--) printf(\ for(n=1;n<=2*m-1;n++) printf(\printf(\ } } 【习题5-15】阅读下面程序,写出运行结果。 #include int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i<=k;i++) for(j=0;j<=i;j++) n[j]=n[i]+1; for(i=0;i<=k;i++) printf(\ printf(\ } 【习题5-16】阅读下面程序,写出运行结果。 #include int j,ch,a[8]; for(j=0;j<8;j++) a[j]=0; while((ch=getchar())!='\\n') if(ch>='0'&&ch<='7') a[ch-'0']++; for(j=0;j<8;j++) printf(\ } 程序运行时输入:12345678900987654321234806↙ 三、编写程序题 【习题5-17】已知整型数组a中有10个元素,整型数组b中有6个元素。编程将那些在数组a中而不在数组b的数据组成新数组c并输出。 【习题5-18】已知a是3×4的整型二维数组,编程求数组a中所有外围元素之和。 【习题5-19】不用strcmp函数,编程判断两个长度不超过20的字符串的大小:若第一个字符串大于第二个字符串输出1;若两个字符串相等输出0;否则输出-1。 【习题5-20】输入长度不超过20的字符串,编程判断其中字母的个数。 【习题5-21】已知整型数组a中有10个元素,编程将其中某个数k删除,输出删除后的数组。 习题六 一、选择题 【习题6-1】变量的指针,其含义是指该变量的________ A)值 B)地址 C)名 D)一个标志 【习题6-2】若有语句int *point,a; 则point=&a;中运算符&的含义是_____ A)位与运算 B)逻辑与运算 C)取指针内容 D)取地址 【习题6-3】若x是整型变量,pb是整型的指针变量,则正确的赋值表达式是 A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x 【习题6-4】下面程序段的运行结果是_________ char *s=\ s+=2; printf(\ A)cde B)字符’c’ C)字符’c’的地址 D)无确定的输出结果 【习题6-5】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是______ A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2); 【习题6-6】若有定义语句 char a[]=\ char *p=\ 则以下不正确的叙述是________. A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 【习题6-7】若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为___ A)*(a[i]+j) B)(a+i) C)*(a+j) D)a[i]+j 【习题6-8】 设有如下定义:int (*ptr)( ); 则以下叙述中正确的是: A)ptr是指向一维组数的指针变量 B)ptr是指向int型数据的指针变量 { int x, y; struct HAR *p; }h[2]; main() { h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1];h[1].p=h; printf(\,(h[1].p)->x); } A) 2 3 B) 1 4 C) 4 1 D) 3 2 【习题7-8】以下对结构体类型变量的定义中,不正确的是________。 A) typedef struct aa B) #define AA struct aa { int n; AA {int n; float m; float m; }AA; }td1; AA td1; C) struct D) struct {int n; { int n; float m; float m; }aa; }td1; struct aa td1; 【习题7-9】设有结构体及其数组和指针变量的定义语句 struct{int x;}y[2],p=y; 则下列表达式中不能正确表示结构体成员的是________。 A)(*p).x B)*(p+1).x C)*(p) D)*p.x 【习题7-10】下列程序的输出结果是________。 struct abc { int a,b,c; }; main() { struct abc s={1,2,3}; int t; t=s.a,s.c; printf(\} A) 1 B) 2 C) 3 D) 无结果 【习题7-11】有以下程序: #include { int i; char ch[2]; }a; main() { a.ch[0]=13; a.ch[1]=0; printf(\} 执行上述程序后的输出结果是________。 A)13 B)14 C)208 D)209 【习题7-12】变量a所占内存字节数是________。 union U { char st[4]; int i; long l; }; struct A { int c; union U u; }a; A) 4 B) 5 C) 6 D) 8 【习题7-13】若定义union uex{int i;float f;char c;}ex;则sizeof(ex)的值是________。 A)4 B)5 C)6 D)7 【习题7-14】以下程序的输出结果是________。 union myun { struct {int x, y, z; } u; int k; }a; main() { a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(\} A) 4 B) 5 C) 6 D) 0 【习题7-15】若定义union ex{int i;float f;char a[10];}x;则sizeof(x)的值是________。 A)4 B)6 C)10 D)16 【习题7-16】设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是 A) PER 是结构体变量名 B) PER是结构体类型名 C) typedef struct 是结构体类型 D) struct 是结构体类型名 【习题7-17】下面说明中,正确的是________。 A) typedef v1 int; B) typedef v2=int; C) typedef int v3; D) typedef v4: int; 【习题7-18】以下各选项企图说明一种新类型名,其中正确的是_______。 A)typedef a1 int; B)typedef a2=int C)typedef int a3; D)typedef a4;int; 【习题7-19】以下枚举类型的定义中正确的是________。 A)enum a={one,two,three}; B)enum a{\C)enum a={\ D)enum a{one=8,two=9,three}; 【习题7-20】设有定义 enum team{my,your=3,his,her=his+5}; 则枚举元素my,your,her的值分别是________。 A)032 B)134 C)039 D)035 【习题7-21】整型变量x和y的值相等且为非0值,则下面表达式中结果为零的是________。 A) x||y B) x|y C) x&y D) x^y 【习题7-22】设 int b=8;表达式(b>>2)/(b>>1)的值是________。 A) 0 B) 2 C) 4 D) 8 【习题7-23】运行下面程序: main() { char x=034; printf(\} 则输出结果是________。 A) 34 B) 70 C) 340 D) 034 【习题7-24】若定义unsigned int a=3,b=10; printf(\|b==1); 则运行结果为________。 A)13 B)12 C)8 D)14 二、编程题 【习题7-25】编写程序。从键盘输入10本书的名称和定价,并存在结构体数组 中,从中查找出定价最高和最低的书的名称和定价,并打印出来。 【习题7-26】编写程序。设有以下结构体类型说明: struct student { char num[10],name[10]; float s[4]; double ave; }; 要求:编写两个函数,函数fun1把10名学生放在一个结构体数组中。从键盘输入学生的学号、姓名和4门成绩,然后计算出平均分放在结构体对应的域中;函数fun2输出10名学生的记录。主函数调用函数fun1和函数fun2,不使用全局变量,函数之间的数据全部用参数传递。 【习题7-27】定义结构体类型complex表示复数,实数部分名为rp,虚数部分 名为ip,都用整型数表示。编写一套函数,实现复数运算,并用主函数调用这些函数。函数包括: (1)读一个复数;(2)输出一个复数;(3)计算两个复数的和与差。 【习题7-28】已有两个链表x和y,每个链表的结点包括学号和成绩,要求把两 个链表合并,按学号升序排列。 【习题7-29】解决百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值 钱一。百钱买百鸡,问鸡翁、母、雏各几只”。要求:用结构体数组记录所有的情况,并显示结果,请用指针方式操作。 习题八 一、单选题 【习题8-1】以读写方式打开一个已有的文件file1,下面有关fopen函数正确的 调用方式为________。 A)FILE *fp;fp=fopen(\ B)FILE *fp;fp=fopen(\; C)FILE *fp;fp=fopen(\ D)FILE *fp;fp=fopen(\【习题8-2】在C程序中,可把整型数以二进制形式存放到文件中的函数是 __________。 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数 【习题8-3】函数调用语句fseek(fp,10,1)的含义是_______。 A)将文件指针移到距离文件头10个字节处 B)将文件指针移到距离文件尾10个字节处 C)将文件指针从当前位置后移10个字节 D)将文件指针从当前位置前移10个字节 【习题8-4】若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp) 的返回值是_______。 A) EOF B) 0 C) 非零值 D) NULL 【习题8-5】在C语言中,用w+方式打开一个文件后,可以执行的文件操作是 ________。 A)可任意读写 B)只读 C)只能先写后读 D)只写 【习题8-6】下面的程序执行后,文件test.txt中的内容是 #include void fun(char *fname ,char *st) { FILE *myf; int i; myf=fopen(fname,\for(i=0;i fputc(st[i],myf); fclose(myf); } main() { fun(\} A) hello, B) new worldhello, C) new world D) hello,rld 【习题8-7】若要打开A盘上user1子目录下名为abc1.txt的文本文件进行读、 写操作,则正确语句是___。 A) fopen(\ B) fopen(\C) fopen(\ D) fopen(\【习题8-8】有以下程序 #include FILE *fp; int i=10,j=30,k,n; fp=fopen(\ fprintf(fp,\ fprintf(fp,\ fclose(fp); fp=fopen(\ fp=fscanf(fp,\ printf(\ fclose(fp); } 程序运行后的输出结果是________。 A) 10 30 B) 20 30 C) 30 50 D) 30 20 【习题8-9】fread和fwrite函数常用来要求一次输入/输出________数据。 A)一个整数 B)一个实数 C)一个字节 D)一组 【习题8-10】feof函数用来判断文件是否结束,如果文件没有结束,则返回值是 ________。 A)-1 B)0 C)1 D)EOF 【习题8-11】当顺利执行了文件关闭操作时,fclose函数的返回值是________。 A)0 B)Ture C)-1 D)1 【习题8-12】下列语句中,不能将文件型指针fp指向的文件内部指针置于文件 头的语句是________。 (注:假定能正确打开文件) A)fp=fopen(\ B)rewind(fp) C)feof(fp) D)fseek(fp,0L,0) 二、简答题 【习题8-13】举例说明文本文件和二进制文件的适用场合。 【习题8-14】什么是文件?C语言中的文件如何分类? 【习题8-15】写出在C程序中使用文件的操作步骤。 三、编程题 【习题8-16】编写一个程序,将两个文件中的内容合并输出到另一个文件中。 【习题8-17】编写一个程序,统计命令行中提供的某一文本文件中汉字的个数(提 示:可以简单认为汉字的两个字节内码的ASCII值都大于160)。 【习题8-18】建立一个文件,其中含有若干个学生的学号、姓名、出生日期、入 学成绩信息。然后,从这个文件中读出每个学生的学号和姓名,输入其“C程序设计”课程的成绩,并把这些信息保存到一个新文件中。
正在阅读:
C语言习题09-30
老百姓关心的100个法律问题10-02
一年级2班 语文01-17
探析法官独立的具体制度01-03
5《建设工程企业资质管理规定和标准说明》 建办市函274号文09-30
手机充电宝 手机电池首次充电 苹果充电器03-07
做科研必须了解的SCI SSCI EI CSCI CSSCI01-02
2017产科应急预案演练脚本11-15
北京大学2011—2012学年校历06-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 语言
- 建设高效的工作团队
- 集团公司外派董事监事管理办法
- 森林营造技术习题及参考答案
- 维纳滤波实现图像恢复
- 项目评估 知识点
- 港口规划与布置课程设计(海港)
- 15药剂成人大专生物药剂学与药物动力学复习题及答案
- 证券投资组合优化组合习题解答
- 麦克斯韦电磁场理论的建立及意义
- 自动化仪表控制系统管理制度-1
- 三年级数学上册一个因数中间有零的乘法教学设计及反思 - 图文
- 结合自己的教学实践,谈谈你是如何撬动学生学习的支点让学生感受学习是有用的?
- 读写结合、随文练笔
- 蛋白质分解代谢
- 2016年人教版七年级语文上册全册教案
- C++语言程序设计知识点
- 5《建设工程企业资质管理规定和标准说明》 建办市函274号文
- 西北农林科技大学的景观调查与分析之四季广场
- 浅谈朱自清散文的美学特征
- 六年级下册期中科学试卷分析