2012年9月c语言上机题库(只含答案和讲解)

上传人:j****9 文档编号:47758460 上传时间:2018-07-04 格式:PDF 页数:107 大小:543.02KB
返回 下载 相关 举报
2012年9月c语言上机题库(只含答案和讲解)_第1页
第1页 / 共107页
2012年9月c语言上机题库(只含答案和讲解)_第2页
第2页 / 共107页
2012年9月c语言上机题库(只含答案和讲解)_第3页
第3页 / 共107页
2012年9月c语言上机题库(只含答案和讲解)_第4页
第4页 / 共107页
2012年9月c语言上机题库(只含答案和讲解)_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《2012年9月c语言上机题库(只含答案和讲解)》由会员分享,可在线阅读,更多相关《2012年9月c语言上机题库(只含答案和讲解)(107页珍藏版)》请在金锄头文库上搜索。

1、 第1套 程序填空题 【参考答案】 (1)3.0或(double)3 (2) (3) (t+1) 【考点分析】 本题考查:基本算术运算时的类型转换,其转换规则为: 如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致; 如果双目运算符两边运算的类型不一致,系统将自动进行类型转换,使运算符两边的类型达到 一致后,再进行运算规律见下表。 运算数1 运算数2 转换结果类型 短整型 大整型 短整型长整型 整型 大整型 整型长整型 字符型 整型 字符型整型 有符号整型 无符号整型 有符号整型无符号整型 整型 浮点型 整型浮点型 while循环语句,一般考查如何根据题意确定循环条件,以及

2、如何通过循环变量变化实现循环操 作。 【解题思路】 填空1:变量x定义为double类型,而运算符“/“后面是整型数,所以给x赋值时,需要注意数据类 型,此处不能将3.0写成3。 填空2:while循环语句的循环条件,根据题意确定循环变量应大于1e3,因此此处应填“。 填空3:表达式的通项是(2*i+1)/(2*i)2 ,由于程序中已定义t=2*i,所以此处应该填写(t+1)。 【解题宝典】 本题填空1还可以运用强制类型转换来实现。强制类型转换是通过类型转换运算来实现的。其一 般形式为:“(类型说明符) (表达式)“。其功能是:把表达式的运算结果强制转换成类型说明符 所表示的类型。 例如: (

3、float) a 把a转换为实型 (int)(xy) 把xy的结果转换为整型 程序改错题 【参考答案】 (1)double fun(int n) (2)s=s+(double)a/b; 【考点分析】 本题考查:函数定义,函数定义的一般形式为:“类型标识符 函数名(形式参数表列)“,其中类 型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。 【解题思路】 (1)由语句“return(s)“和变量s定义为double数据类型可知,该函数定义时其类型标识符为double类 型。 (2)注意数据类型double的书写格式。 【解题宝典】 确定函数类型标识符在填空和改错题中经常考到,如果函

4、数没有返回值,则函数定义为void型;如果函数有返回值,则函数类型应与返回值类型一致;如果不定义函数类型标识符,则系统默 认为int型。 程序设计题 【参考答案】 int fun (int aM) int i,j,max=a00; for(i=0;i=eps) /*当某项大于精度要求时,继续求下一项*/ s1=s1*n/(2*n+1); /*求多项式的每一项*/ s=s+s1; /*求和*/ n+; return 2*s; 【考点分析】 本题考查:迭代法求给定多项式的值,迭代算法:让计算机对一组指令(或一定步骤)进行重复 执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值

5、。需要注意变 量的数据类型以及赋初值操作。 【解题思路】 首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。从第2 项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s表示求和后 的结果。需注意s1和s的初值都为1.0,因为循环变量从第二项开始累加。 第3套 程序填空题 【参考答案】 (1) si (2) 9 (3)*t=n 【考点分析】 本题考查:for循环语句;if语句条件表达式;指针变量。 【解题思路】 填空1:通过for循环语句,来判断是否到字符串结尾,变量i用来存放字符串数组下标,则应填 入si。 填空2:题目要求判断数

6、字字符,所以此处应填入9。 填空3:将数字字符个数存入变量t中,这里需注意变量t是指针变量。 【解题宝典】 if语句的条件表达式一般会考查三方面的内容: (1) 条件判断,即与、n)得余数 r, 再用余数r去除原来的除数,得到新的余数,重复此过程直到余数为 0时停止,此时的除数就是 m 和 n的最大公约数。 程序首先判断参数a和b的大小,如果aaj。 【解题宝典】 求最大值或者最小值的题目, 一般都是假设一个元素最大或最小, 然后通过if条件语句将该元素 和其他元素进行比较操作来完成。 程序改错题 【参考答案】 (1)去掉分号 (2)case 1:case 2:return 1; 【考点分析】

7、 本题考查:switch语句,其一般形式为: switch(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n; default: 语句n1; 其中switch(表达式)后不应该带有“;“,同时case语句常量后应该是“:“。 【解题思路】 C语言中,switch语句之后不能有分号,并且case语句常量后应用的是冒号。 程序设计题 【参考答案】 void fun(STREC *a) int i; a-ave=0.0; for(i=0;iave=a-ave+a-si; /*求各门成绩的总和*/ a-ave/=N; /*求平均分*/ 【考点

8、分析】 本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。 【解题思路】 本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a ,此时,引用成员的方 式可以使用指向运算符,即aave和asi,当然也可用(*a)ave和(*a)si。 第7套 程序填空题 【参考答案】 (1)char (2) chnext; while(p!=NULL) ave=ave+p-s; p=p-next; return ave/N; 【考点分析】 本题考查:链表的操作,对链表的主要操作有以下几种:建立

9、链表、结构的查找与输出、插入 一个结点、删除一个结点。 【解题思路】 题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的 和,再对和求平均分。遍历链表时应定义一个指向结点的指针p,因为“头结点“中没有数值,所 以程序中让p直接指向“头结点“的下一个结点,使用语句STREC *phnext。 第8套 程序填空题 【参考答案】 (1) M (2) =a) sisj sjt; 程序设计题 【参考答案】 int fun(char *ss, char c) int i=0; for(;*ss!=0;ss+) if(*ss=c) i+;/*求出ss所指字符串中指定字符的个数

10、*/ return i; 【考点分析】 本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串是否结束。 【解题思路】 从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字 符串没有结束,即当前字符不是0,判断语句用来判断当前字符是否为指定字符。最后返 回指定字符的个数。 第10套 程序填空题 【参考答案】 (1)x (2)p (3)s 【考点分析】 本题考查: 链表的基本操作。了解链表的基本思想和相关算法,理解有关链表插入及删除时指 针移动的先后顺序问题,注意指针的保存和归位。 【解题思路】 填空1:将形参x赋值给结点的数据域。 填空2和填空3:将新

11、的结点和原有链表中结点进行比较。 程序改错题 【参考答案】 (1)long k=1; (2)num /=10; 【考点分析】 本题考查:数据类型;保存乘积的变量初始化;除法运算符。 【解题思路】 (1)k用来存放各位数字的积,初始值应为1。 (2)这里是一个符号错误,除号用“/“来表示。 【解题宝典】 明确C语言中的算术运算符: 加法运算符“:为双目运算符,即应有两个量参与加法运算。 减法运算符“:为双目运算符。但“也可作负值运算符,此时为单目运算,如x,5等具 有左结合性。 乘法运算符“*“:双目运算,具有左结合性。 除法运算符“/“:双目运算,具有左结合性。参与运算量均为整型时,结果也为整

12、型,舍去小数。 如果运算量中有一个是实型,则结果为双精度实型。 求余运算符(模运算符)“%“:双目运算,具有左结合性。要求参与运算的量均为整型。 求余运 算的结果等于两数相除后的余数。 程序设计题 【参考答案】 float fun ( float *a , int n ) int i; float av=0.0; for(i=0; i=a 【考点分析】 本题考查:函数定义,本题为有参函数定义。printf()函数,其一般形式为“printf(格式控制字符 串,输出表列) ;“。 “%d“表示按十进制整型输出; “%ld“表示按十进制长整型输出; “%c“表示按字符型输出等。 非格式字符串在输出

13、时原样输出,起提示作用。 【解题思路】 (1)定义函数时形参的类型要与调用函数中实参的类型一致,主函数中fun传递的是字符串s的首 地址,所以此处形参应为指针类型。 (2)根据printf函数格式,很容易找到错误之处。 程序设计题 【参考答案】 char *fun ( char *s, char *t) int i,j; for(i=0;si!= 0;i+); /*求字符串的长度*/ for(j=0;tj!= 0;j+); if(i字符数组2, 函数值 大于0(正数);若字符数组1字符数组2,函数值等于0;若字符数组1=2) return x1; 【考点分析】 本题考查:迭代法求方程的实根;d

14、owhile循环语句,其形式为: do 语句 while(表达式); dowhile循环与while循环的不同在于,它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, dowhile循环至少要执行一次循环语 句。 【解题思路】 用迭代方法求方程的一个实根,题目已经给出了算法,只要按照算法用合适的程序表达,就可 以解题了。 第19套 程序填空题 【参考答案】 (1) a (2) b.name (3) scorei 【考点分析】 本题考查:结构体数据类型;strcpy字符串拷贝函数。 【解题思路】 填空1: 题目要求先将形参a所指结构体变量中的数据

15、赋给函数中的结构体变量b, 所以此处ba。 填空2:通过strcpy函数修改b中的学生姓名,注意结构变量成员的表示方法。 填空3:printf函数输出结果。 【解题宝典】 结构变量成员的一般形式是: 结构变量名成员名 例如: student1.num即第一个学生的学号 student2.sex即第二个学生的性别 程序改错题 【参考答案】 (1)sj+=si;或sj=si;j+; (2)sj= 0; 【考点分析】 本题考查:数组元素下标;字符串结束标识0。 【解题思路】 由循环条件if(si!c)可知,如果字符串中的字符不是c,则将保留该字符到sj位置,然 后下标j进行加1操作。循环结束后要在新串的结尾加上0。 程序设计题 【参考答案】 void fun( char *a ) int i=0,n=0; char *p;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号