首页 > 全部 > 二级C语言 > 二级C语言程序填空题专项强化真题试卷5

二级C语言程序填空题专项强化真题试卷5

本单篇文档共3701字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 真题试卷 7189人下载
价格: 2.00 原价:¥7.00
收藏

二级C语言程序填空题专项强化真题试卷5

程序填空题

1.函数fun的功能是:计算1+z++…+

(1)1.0

(2)1

(3)i

解析:本题考查:累加、累乘;复合赋值运算;变量赋初值;for循环条件。

填空1:本题要求给double型变量t赋初值,从for循环中我们知道,t用来存放累乘的结果,因此t的初值应该为1。

填空2:考查for循环变量的范围,注意本题要求计算f(x)的前n项,即计算:所以循环变量i应从1递增至n—1,因此此空应填1。

填空3:t用来存放每次循环增量,分析公式可知,后一项总是在前一项的基础上乘以一个

2.程序通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<string.h>

struct student{

long sno;

char name[10];

float score[3];

};

void fun(struct student a[],int n)

{

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

1 t;

int i,j;

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

for(i=0;i< 2 ;i++)

for(j=i+1;j<n;j++)

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

if(strcmp( 3 )>0)

{t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{

struct student s[4]={{10001,\\

(1)struct student

(2)n—1

(3)a[i].name,a[j].name

解析:本题考查:变量定义;for循环语句;strcmp函数;结构体变量的表示方法。

填空1:变量t是中间变量,用来存放结构体数组中的元素,因此应定义为结构体类型。

填空2:for循环语句用来遍历结构体数组,n是数组的长度,因此循环变量的取值范围是0~n—1。

填空3:字符串比较函数strcmp的一般格式为“strcmp(字符串1,字符串2)”。

功能:按照ASCII码顺序比较两个字符数组中的字符串,并由函数返回值返回比较结果。

字符串1=字符串2,返回值=0;

字符串1>字符串2,返回值>0;

字符串1<字符串2,返回值<0。

3.下列给定程序中,函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

int fun(int n)

{

int i,j,count=0;

printf(\\

(1)j=2

(2)i

(3)j

解析:填空1:j的初始化要从2开始,因为要判断一个数是否为素数,即将其除以从2开始的数字,看有没有被整除的。

填空2:如果碰到有个数字j可以被i整除,那么表示这个数不是素数,要用break直接结束循环,这个时候的j肯定小于i。

填空3:j>=i,表示在上面if(i%j==0)没有成功,所以会循环执行for(j=2;j<i;j++),以致最后j>=i,这样可以知道该数字i就是素数。

4. 下列给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……以此类推。例如,若N=5,生成的矩阵为:

1 1 1 1 1

1 2 2 2 1

1 2 3 2 1

1 2 2 2 1

1 1 1 1 1

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#define N 7

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

void fun(int(*a)【1】)

{

int i,j,k,m;

if(N%2==0)m=N/2;

else m=N/2+1;

for(i=0;i<m;i++)

{

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

for(j=【2】;j<N—i;j++)

a[i][j]=a[N—i一1][j]=i+1;

for(k=i+1;k<N—i;k++)

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

a[k][i]=a[k][N—i一1]=【3】;

}

}

main()

{

int x[N][N]={0},i,j;

fun(x);

printf(\\

(1)[N]

(2)i

(3)i+1

解析:填空1:参数传递时将实参的值赋给形参,实参和形参是一一对应的,因此该空应该填写[N]。

填空2:第二重for循环中a[i][j]和a[N—i一1]

本文档预览:3600字符,共3701字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
二级C语言程序填空题专项强化真题试卷5

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号