高级语言程序设计(C)模拟题1
发布时间:2023-11-15 21:11:39浏览次数:58高级语言程序设计(C)模拟题一一、选择题(本题共 20 道小题,每题 2 分,共 40 分。)以下程序的输出结果是 ;!" #$ % &'答案:"解析:‘(对应的 ")%** 码是 +,,输出的是,即字符的形式,+, 对应小写字母 。设 是 型变量 是 -. 型变量用下面的语句给这两个变量输入值:/01022为了把 和 ,3 分别赋给 和 则正确的输入为" 4空格5,34回车5# ,34回车5% 4回车5,34回车5&6 4回车5',34回车5答案:#解析:输入的格式需要和双引号中的格式保持一致,因此“7和“都不能缺少。8设已有定义9:/0.;'.0下列程序段中正确的是"<=:/'>2/<?=#<=/'>>/%<=/'/&<=:/'2<=/>答案:"解析:# 项中 不能进行自增运算;% 项 的空间不足;& 项中定义 的格式有误。?设 7 为 型变量则下面 . 循环语句的执行结果是.7 7587787770107!"38#,?%3&,81
<= <8= 以下函数的功能是IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII1.FE1.FE6'1.FE.64'>>:6!答案:求 6 的 ' 次方解析:循环 ' 次,每次乘以 6,因为最初 6,所以最终 6 的 ' 次方。 ' 6 6 6'8以下程序的输出是9IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIDE10'0DE10/1.0/<C=:/J////;E:/:/>> !键盘输入:F1答案:F1解析:/ 数组存储字符串,/ 指向 / 开头,;E 判定 / 中内容不为结束符时输出并自增,所以改程序效果即为输出字符串。< = <= <= <8= <?= <=/ ( F( ( 1( ( B (/ ( F( ( 1( ( B (10
五、编程题(本大题共 2 小题,每题 10 分,共 20 分)一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 3++8编程找出 以内的所有完数。答案:DE14/1.57/.4 >>/ .774T7>>7 />7/010! !解析:从 开始到 T,判断是否整除,再判断因数之和与 是否相等,这样即可判断是否是完数。编写一函数 ,实现矩阵(8 行 8 列)的转置(即行列互换)答案:'<8=<8=7. 4>>.7>7487>>'<=<7='<=<7='<7=<='<7=<=!!解析:以 8:8 二维数组存储,< =<=与 <=< =、< =<=与 <=< =、<=<=与 <=<=中数值交换。11
学 院 - 学年 第 学期 c 程序设计 试卷(参考答案)题号一 二 三 四 五 六 七 八 九 总 分得分一、选择题(本题共 道小题,共 ? 分。)"#8"?##3&,&C#+& %&&8%?%"3","C&+& %二、填空题(每空 分,共 分。)3 8> 或:>? ? 8? 3O22RR, 三、判断题(本题共 道小题,共 分。)错12
错8对?错错3错,错C对+对 错四、列表分析程序(本题共 8 道小题,共 分)I,II求 6 的 ' 次方8F113
答案:#解析: 语句中,如果 7 除以 8 的余数不为零就进行一次自减,所以第一次输出的值为 ,;第二次循环开始时,73,自减两次后输出值为 ?。结尾再进行一次自减后不满足循环条件,故跳出循环。以下程序的输出结果是@< =<8=:A. 4 >><=. 48>><=<:>=. 48>>@><=:01B0@ ;!" #%&8答案:#解析:第一个循环语句将 < =到 <+=分别赋值 到 +。由第二个循环语句,我们可以知道 数组中存储的数值为 3。第三个循环语句执行运算 @>: >:>:3。3若有以下说明9;<8=<?= !?!C!!:<?=;则数值为 ? 的表达式是":;<=> #>>:>%;<=<= &<=<=答案:&解析: 指向 ;< =< =。" 项的取得 ;<=< =的值再加 ,所以结果为 8;# 项已经指向 ;数组存储空间之外;% 项根据 ; 数组的定义为 ;& 项即相当于 ;<=<=。,若 @ 是 型变量,且有下面的程序片段:@8@4 0DDDD0E/022220上面程序片段的输出结果是2
"DDDD#2222 %DDDD2222&有语法错误,无输出结果答案:&解析: 和 E/ 之间需要有分号隔开。C以下程序运行后,输出结果是 'C, ,7,<C=1.<='>>''B!;E'5.775 7010,<7=0B0; ;!" # % & 答案:#解析:这是一个十进制转化二进制的程序,第一个循环将 ' 除以 所得余数存入 数组中,第二个循环将余数逆向输出。+以下叙述中不正确的是"在不同的函数中可以使用相同名字的变量#函数中的形式参数是局部变量%在一个函数内定义的变量只在本函数范围内有效 &在一个函数内的复合语句中定义的变量可以在本函数范围内有效答案:&解析:复合语句中定义的变量的生命周期,只在该复合语句的控制范围内有效,超过这个范围就没有了。 请读程序9DE14/1.5F3
>F!63',C( 6'>>6>')01B0 ;!上面程序的输出结果是" # % &8答案:%解析:( 6'>>6>')中,前一个括号中为逗号运算符,所以先计算 6与'>>,但结果为 6>'(3)>(,>)8,再对 8 和 进行求和,所以 。以下程序的输出结果是DE14/1.501F1B0 ;!"F#F%1F1&1F1答案:&解析:在 printf 函数当中,“%%”即表示“%”本身,此时两个“%”变为表示一个字符“%”,“d”前就没有了控制格式的“%”,所以“d”就仅仅表示一个字符。设 F81?则表达式:4FG941G91 的结果为"?#8%&答案:&解析:问号冒号运算符就表示 E/ 语句,问号前为条件,第二项为条件为真的结果,最后一项为条件为假的结果。将表达式后看作一部分,4FG941G91,判断 4F 为真,所以结果就为 。4
8执行以下程序后' 的值是<=?3C !'6:2<=.6 6486>>'>:>601B0' ;!", #C%+ & 答案:%解析: 指针指向 <=的位置,其内容为 ?。循环语句中,>6 表示指针向右移 6 个单元,所以 '>?>3>C+。?下面四个选项中,全是不合法的用户标识符的是:"、"HI 1.#、-.E I"%、FJ..&、I8*KL答案:%解析:标识符的命名规则:由字母、数字、下划线组成,第一个字符必须是字母或者下划线,标示符的命名不能同 % 语言的关键字相同。以下程序的输出结果是?;;E010,; ;!" #8%8& 答案:"解析:先运算再自减, 先自减再运算。第一次循环判定时 ?,进入循环,并自减,此时 8;输出时先自减,所以输出 。第二次循环以此类推,输出 。之后在进行判断时, ,故跳出循环。3设有如下的变量定义:C,@,,F5
/J1E.J;1.FE6?,'则以下符合 % 语言语法的表达式是">F?:8#68%:8&'-.答案:"解析:# 项浮点数不能进行取余计算;% 项赋值运算从右向左,:8 为非法格式,常数项不能出现在赋值运算的左边;& 项强制转换应为 '(-.)。,两次运行下面的程序如果从键盘上分别输入 3 和 ?则输出结果是6/010266>>50106E/01B06 ;!", 和 #3 和 8%, 和 ?&3 和 ?答案:"解 析 : 6>> 与 6 均 为 先 进 行 运 算 再 进 行 自 增 或 自 减 。 所 以 输 入 3 时 , 判 断 为 真 ,63>,,所以输出 ,;输入 ? 时,判断为假,6?>,输出 后,6 再进行自减。C若有以下定义:F-.1.FE1则表达式 :F>1 值的类型为"-.#%&1.FE答案:&解析:在类型不同的计算中,默认向高级别的类型转换。+设有以下定义9<?=<8=8?3,C+ !:<8=:< =则下列能够正确表示数组元素 <=<=的表达式是"::><= #::>%:>> &::>>6
答案:&解析:<=<=的值为 3。 为数组指针,指向 < =< =,一次的偏移量为 8 个单元; 指针也指向 < =< =。" 项格式错误;# 项两次对指针取内容有误;% 项值为 的地址值加8;& 项 > 表示 > 行,所以 & 项确实表示的是 <=<=。 给出以下定义:6<=0F1J0'<=F1J!则正确的叙述为"数组 M 和数组 N 等价 #数组 6 和数组 N 的长度相同%数组 M 的长度大于数组 N 的长度 &数组 M 的长度小于数组 N 的长度答案:%解析:6 以字符串形式存储,在数组最后会添加一个字符串结束符’B (,所以长度比 N 大。二、填空题(本大题共 7 小题,每题 2 分,共 14 分。)假定 所指对象的值为 ,> 所指对象的值为 ?3,则执行0:>>;0语句后,所指对象的值为IIIIIIIIIII。答案:3解析::>>表示 指针所指地址中的值自增如果变量定义有:=+,=C;则表达式(O=++)GPP:++ 的值为IIIIIIII。答案: 解析:判断 是否不等于 ,因为 ,所以判定为否,此时 C>+,取值>>,所以值为 。8假定一个二维数组为 <Q=<K=,则 <=的地址值以字节为单位为 IIIIIIIIII。答案:> 或:>解析:二维数组中,<=表示第 行第一项地址值,> 表示 偏移 行。?已有 7-.6为将 赋给 , 赋给 7,? 8? 赋给 6;则对应 /011022726调用语句的数据输入形式是IIIIIIIIII答案: ? 8?解析:格式输入函数,按照格式要求把两个整数和一个实数通过键盘输入赋值给相应变量。7
若 6,' ,则 65' 和 64' 的逻辑值分别为IIIIIIII和IIIIIII。答案: 解析9根据 6 和 ' 的值可知,65' 的结果为假,64' 的结果为真。3% 语言提供三种逻辑运算符,按优先级高低它们分别是IIIIIIIII, IIIIIIII,IIIIIIIII。答案:!、RR、22解析:根据 % 语言逻辑运算符的优先级可得结果。,空字符串的长度是IIIIIIIIII。答案:解析:字符串结束符占用一个空间。三、判断题(本大题共 7 小题,每题 2 分,共 14 分。)若 是实型变量,% 程序中允许赋值 因此实型变量中允许存放整型数( )答案:错解析:实型中存放的不是整型,其存储内容已经经过转换。函数中的局部变量都是动态存储( )答案:错解析:静态存储方式是指在程序运行期间分配固定的存储空间的方式,动态存储方式是在程序运行期间根据需要进行动态的分配存储空间的方式。 8主函数 中定义的变量在整个文件或程序中有效( )答案:错解析:主函数 中定义的变量属于局部变量。?函数的定义可以嵌套,但函数的调用不可以嵌套( )答案:错解析:% 语言语法规定函数不能嵌套定义,但可以嵌套调用。1.;E 循环中,根据情况可以省略 ;E( )答案:错解析:1.;E 是一种格式,必须同时出现。3形参是虚拟的,不占用存储单元答案:错8
解析:形参在运行时需要分配空间。,用户若需要调用标准库函数,调用前必须重新定义( )答案:错解析:标准库函数调用前只要声明即可。四、程序分析题(用列表法列出关键变量在运行过程中的值)(本题共 8 道小题,每题 ? 分,共 分。)若输入 8,,,则下面程序的输出结果是IIIIIIIIIIII。DE14/1.5S.1/F<=<=>8:<=>>5 <>>=T <= !E/<=!< = !/0111022< =2<=TT.4>>/F TT. 4>>01I0<=0B0 !答案:I,II解析: T (/F 函数中)T , < = <= , ,9