Batdxaz计算机二级C语言上机模拟试题10套(含解析) 下载本文

printf(\}

答案及评析:

【1】n/100 【2】″yes!″ 【3】″no!″

【解析】填空1:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。填空2:当个位数字和百位数字之和等于十位数字时,则返回″yes!″。填空3:当个位数字和百位数字之和不等于十位数字时,则返回″no!″。 2. 改错题

下列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:

#include #define N 20

void fun(int a[],int n) {

int i,j,t,p;

/**********************found***********************/

for(j=0;j

for(i=j;ia[p]) p=i; t=a[p]; a[p]=a[j];

/**********************found***********************/

a[p]=t; } }

main() {

int a[N]={11,32,-5,2,14},i,m=5; printf(\排序前的数据:\ for(i=0;i

printf(\排序后的顺序:\ for(i=0;i

printf(\ printf(\}

答案及评析:

(1)错误:for(j=0;j

【解析】错误1:根据C语言语法,for循环中循环条件后不加分号,除非做空操作。

错误2:将两数进行交换的常用语句,借助第三个变量。

3. 编程题

下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如:若a 数组中的值为 a=0 1 2 7 9 1 11 21 5 5 2 21 6 11 1 9 7 9 10 2 5 4 1 4 1

则返回主程序后s的值应为310。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:

#include #include #include #define N 5

int fun (int w[][N]) { }

main() {

int a[N][N]={0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1}; int i, j; int s; clrscr();

printf(\ for (i=0; i

{printf(\ printf(\ }

s=fun(a);

printf(\ printf(\}

答案及评析:

int fun (int w[][N]) {

int i,j,k=0; int s=0;

for(i=0;i

if(i==0||i==N-1||j==0||j==N-1) /*只要下标中有一个为0或N-1,则它一定是周边元素*/

{s=s+w[i][j]*w[i][j]; /*将周边元素求平方和*/ }

return s; /*返回周边元素的平方和*/ }

【解析】该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。

模拟试题(九)

1.填空题

请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。 例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:

#include #include #define LEN 80 main() {

char str1[LEN],str2[LEN]; int n,i; clrscr();

printf(\ gets(str1);

printf(\ deleted:\

scanf(【1】); for(i=0;i

printf(\【3】); }

答案及评析:

【1】″%d″,&n 【2】str2[i]=str1[i]; 【3】str2

【解析】填空1:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符‘ &'。填空2:截取前n个字符,就是将字符串str1的前n个字符依次赋给字符串str2的前n个字符。填空3:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。

2. 改错题

下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。