首页 > 全部 > 二级C语言 > 二级C语言程序设计题专项强化真题试卷6

二级C语言程序设计题专项强化真题试卷6

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

二级C语言程序设计题专项强化真题试卷6

程序设计题

1.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。请编写函数fun,其功能是:求n(n<10000)以内的所有四叶玫瑰数并逐个存放到result所指的数组中,四叶玫瑰数的个数作为函数值返回。

如果一个4位正整数等于其各个数字的4次方之和,则称该数为四叶玫瑰数。

例如,1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4,因此1634就是一个四叶玫瑰数。

注意:部分源程序存在文件PROG1.C中。

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

#include<stdio.h>

{fpragrna warning(disable:4996)

int fun(int n,int result[])

{

}

main()

{

int result[10],n,i;

void NONO(int result[],

int n);

n=fun(9999,result);

for(i=0,i<n;i++)

printf(\\

int fun(int n,int result[])

{

int a,b,c,d,i,sum=0;

int coont=0;

for(i=1000;i<=n;i++)

{

a=i%10;

b=i/10%10;

c=i/100%10;

d=i/1000;

sum=a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d;

if(i==sum){

result[count++]=i;

}

}

return count;

}

解析:利用循环获得1000~9999之间的所有四位整数,分别取出每个整数的个位、十位、百位、千位。对每个位的数字求四次方,然后求和。得到的和与这个数相等,这个数就是四叶玫瑰数。一个数求余10得到这个数的个位,一个数整除10会去掉最后一位,整除100会去掉两位,整除1000会去掉三位。题目要求返回四叶玫瑰数的个数,题中的count变量统计了这个数,并返回。

2.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:将数组左下半三角元素中的值全部置成O。例如a数组中的值为:

1 9 7

2 3 8

4 5 6

则返回主程序后a数组中的值应为:

0 9 7

0 0 8

0 0 0

注意:部分源程序给出如下。

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

试题程序:

#include

#include

#include

#define N 5

void fun(int a[][N])

{

}

void main()

{

int a[N][N],i,j;

system(”CLS”);

printf(\\

void fun(int a[][N])

{

int i,j;

if(a==NULL)retum;

f10r(i=0;i<N;i++)

for(j:0;j<=i;j++)

a[i][j]=0; /*将数组左下半三角元素中的值全部置成0*/

}

解析:对于N×N二维数组,如何表示其左下半三角元素,可以通过以下语句实现。

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

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

外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以j的范围是0~i。

3. 编写函数int fun(int lim,int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回求出的素数的个数。

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#define MAX 100

int fun(int lim,int aa[MAX])

{

}

void main()

{

FILE *wf;

int limit,i,sum;

int aa[MAX];

system(\\

int fun(int lim,int aa[MAX])

{

int i,j,k=0;

for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素数*/

{

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

if(i%j==0)break;

if(j>=i)

aa[k++]=i;/*将求出的素数放入数组aa中*/

}

return k;/*返回所求出的素数的个数*/

}

解析:本程序使用for循环语句查找小于lim的所有数,使用内嵌的循环判断语句判断该数是否为素数。在做这道题时,需要重点掌握素数的判定方法:

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

if(i%j==0)break;

4. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为\\

int fun(char *str,char *substr)

{

int i,j=0;

for(i=0;str[i+1]!=’\0’;i++)

/*如果一个长度为2的子字符串在主字符串中出现一次,则j+1,如此循环*/

if(str[i]==substr[0]&&str[i+1]==substr[1])

j++;

return j;/*返回子字符串在主字符串中出现的次数*/

}

解析:本题考查:遍历字符串,实现字符串的比较运算。

该题中substr只有两个字符,所以

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号