国家二级C语言机试(操作题)模拟试卷589
程序填空题
1.给定程序中,函数fun的功能是:
统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。
例如,若形参s所指的字符串为“abcdef35adgh3kjsdf7”,则输出结果为4。
请在程序的下画线处填入正确内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*ss,int*t)
{ int i,n;
n=0;
/*********found*********/
for(i=0;【1】!=0;i++)
/*********found*********/
if(s[i]>=’0’&&s[i]<=【2】)n
++;
/*********found*********/
【3】;
}
main()
{char s[80]=\\
(1)s[i]
(2)’9’
(3)*t=n
解析:本题考查:for循环语句;if语句条件表达式;指针变量。
填空1:通过for循环语句来判断是否到字符型结尾,变量i用来存放字符型数组下标,则应填入s [i]。
填空2:题目要求判断数字字符,所以此处应填入‘9’。
填空3:将数字字符个数存入变量t中,此处需注意变量t是指针变量。
if语句的条件表达式一般会考查三方面的内容:
(1)条件判断,即>与>=、<与<=、==与!=的区别,需要仔细分析题干的意思,确定条件表达式的内容。
(2)逻辑判断,即&&(逻辑与)与||(逻辑或)的区别,需要根据题干确定if条件中若干个条件表达式的并存关系。
(3)=(赋值号)与==(等于号)的区别,注意在if条件中不会出现=(赋值号)。
程序修改题
2.下列给定程序中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(int*x,int y)
{
int t;
/*********found*********/
t=x;x=y;
/*********found*********/
return(y);
}
void main()
f
int a=3,b=8;
system(\\
(1)t=*x;*x=y;
(2)retum(t);或return t:
解析:本题考查:指针型变量的使用;通过return语句完成函数值的返回。
首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x,最后确定返回值;根据代码b=fun(8a,b),可以知道返回值将赋给变量b,而b中应存放交换前术x中的值,所以函数应返回变量t。
程序设计题
3.编写函数fun,其功能是:求出1一1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<Stdio.h>
void fun(int*a,int*n)
{
}
void main()
{
int aa[1000],n,k;
system(\\
Void fun(int *a,Int *n)
{
int i,j=0;
for(i=1;i<1000;i++)
/*求1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%
77!=0)
a[j++]=i;
*n=j; /*传回满足条件的数的个数*/
}
解析:本题考查:if语句,用来判断能被7整除或者能被11整除,但又不能同时被7和11整除的数,此处需充分理解“逻辑与”和“逻辑或”的区别;for循环语句的循环条件用来控制循环变量取值范围。
该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面来看判断语句。题目要求找出能被7或1l整除,但不能同时被7和11整除的所有整数,能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数,因而,可得出程序中的if语句。注意(i%7==0|| i%11==0)两边必须要有小括号。
本文档预览:3600字符,共2824字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载