万维考试系统-C语言题库-含题目-程序设计题导出-113道

更新时间:2024-05-16 05:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、程序设计 共113题 (共计1130分) 第1题 (10.0分) 题号:390

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:编写函数求1~100中奇数的平方和。 结果为166650.000000。

------------------------------------------------*/ #include void wwjt(); float sum(int n) {

/**********Program**********/

/********** End **********/ }

答案:---------------------- float s=0; int i;

for(i=1;i<=n;i=i+2) s=s+i*i; return(s);

----------------------

第2题 (10.0分) 题号:320

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出。

------------------------------------------------*/

#include void wwjt(); main() {

int i,j,s,a[3][3];; for(i=0;i<3;i++) {

for(j=0;j<3;j++) scanf(\

}

s=fun(a);

printf(\ wwjt(); }

int fun(int a[3][3]) {

/**********Program**********/

/********** End **********/ }

答案:---------------------- int sum; int i,j; sum=1;

for(i=0;i<3;i++) sum=sum*a[i][i]; return sum;

----------------------

第3题 (10.0分) 题号:324

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。(n是偶数) ------------------------------------------------*/ #include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ }

main() {

int m;

printf(\ scanf(\

printf(\ wwjt(); }

答案:---------------------- int sum,i; sum =0;

for(i=2;i<=n;i=i+2) {

sum=sum+i*i;} return(sum);

----------------------

第4题 (10.0分) 题号:345

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上。

例如:当a=45,b=12。调用该函数后,c=4251。 ------------------------------------------------*/ #include void wwjt();

void fun(int a, int b, long *c) {

/**********Program**********/

/********** End **********/ }

main() {

int a,b; long c;

printf(\ scanf(\ fun(a, b, &c);

printf(\ wwjt();

}

答案:---------------------- *c=a/10*1000+a*10+b/10+b*100; ---------------------- 第5题 (10.0分) 题号:366

/*------------------------------------------------ 【程序设计】

功能:求一组数中大于平均值的数的个数。

例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。

------------------------------------------------*/ #include void wwjt();

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

/**********Program**********/

/********** End **********/ } main() {

int a[10]={1,3,6,9,4,23,35,67,12,88}; int y; y=fun(a,10); printf(\ wwjt(); }

答案:---------------------- int i,k=0; float s=0,ave; for(i=0;i

printf(\ for(i=0;iave)k++; return k;

----------------------

第6题 (10.0分) 题号:355

/*------------------------------------------------

【程序设计】

-------------------------------------------------- 功能:对长度为8个字符的字符串,将8个字符按降序排列。 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。 ------------------------------------------------*/ #include #include #include void wwjt();

void fun(char *s,int num) {

/**********Program**********/

/********** End **********/ } main() {

char s[10];

printf(\输入8个字符的字符串:\ gets(s); fun(s,8);

printf(\ wwjt(); }

答案:---------------------- int i,j; char t;

for(i=0;i

{ t=s[i];s[i]=s[j];s[j]=t;} ----------------------

第7题 (10.0分) 题号:44

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:求出二维数组周边元素之和,作为函数值返回。二 维数组的值在主函数中赋予。

-------------------------------------------------*/ #define M 4

#define N 5 #include void wwjt();

int fun(int a[M][N]) {

/**********Program**********/

/********** End **********/ } main() {

int a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; int y; y=fun(a);

printf(\wwjt(); }

答案:---------------------- int s=0; int i,j;

for(i=0;i

---------------------- 第8题 (10.0分) 题号:339

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大 于100。

说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。

例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。

------------------------------------------------*/ #include

void wwjt(); int fun(int x) {

/**********Program**********/

/********** End **********/ } main() {

int x,y;

printf(\ scanf(\ if(x>100) {

printf(\ exit(0); }

y=fun(x); if(y)

printf(\ else

printf(\ wwjt(); }

答案:---------------------- int k; k=x*x;

if((k==x)||(k0==x)) return 1; else return 0;

----------------------

第9题 (10.0分) 题号:383

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:用函数实现字符串的复制, 不允许用strcpy()函数。 ------------------------------------------------*/ #include void wwjt();

void copy(char str1[],char str2[])

{

/**********Program**********/

/********** End **********/ } main() {

void copy(); char c1[40],c2[40]; gets(c1); copy(c1,c2); puts(c2); wwjt(); }

答案:---------------------- int i;

for(i=0;str1[i]!='\\0';i++) str2[i]=str1[i]; str2[i]='\\0'; ----------------------

第10题 (10.0分) 题号:310

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:计算并输出给定整数n的所有因子之和(不包括1与 自身)。

注意:n的值不大于1000。

例如:n的值为855时,应输出704。

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/

} main() {

printf(\ wwjt(); }

答案:---------------------- int s=0,i;

for(i=2;i

----------------------

第11题 (10.0分) 题号:354

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求小于lim的所有素数并放在aa数组中,该函数返回 所求出素数的个数。

------------------------------------------------*/

#include #include #define MAX 100 void wwjt();

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

/**********Program**********/

/********** End **********/ } main() {

int limit,i,sum; int aa[MAX];

printf(\ scanf(\

sum=fun(limit,aa); for(i=0;i

if(i==0&&i!=0) printf(\ printf(\ } wwjt(); }

答案:---------------------- int n=0; int i,j;

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

return n;

----------------------

第12题 (10.0分) 题号:341

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。

------------------------------------------------*/ #include #include #include #define M 20 void wwjt();

void fun(int bb[],int *n,int y) {

/**********Program**********/

/********** End **********/ } main() {

int aa[M],n,y,k;

printf(\ printf(\

------------------------------------------------*/ #include void wwjt();

fun(char str[],int i,int n) {

/**********Program**********/ /********** End **********/ } main() {

char str[81]; int i,n;

printf(\请输入字符串str的值:\\n\ scanf(\

printf(\你输入的字符串str是:%s\\n\

printf(\请输入删除位置i和待删字符个数n的值:\\n\ scanf(\ while (i+n-1>strlen(str)) {

printf(\删除位置i和待删字符个数n的值错!请重新输入i和n的值\\n\ scanf(\ }

fun(str,i,n);

printf(\删除后的字符串str是:%s\\n\ wwjt(); }

答案:---------------------- while(str[i+n-1]) {

str[i-1]=str[i+n-1]; i++; }

str[i-1]='\\0'; ----------------------

第35题 (10.0分) 题号:325

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的平方和,并在 fun()函数中输出。

------------------------------------------------*/

#include void wwjt(); main() {

int i,j,s,a[3][3];; for(i=0;i<3;i++) {

for(j=0;j<3;j++) scanf(\ }

s=fun(a);

printf(\ wwjt(); }

int fun(int a[3][3]) {

/**********Program**********/

/********** End **********/ }

答案:---------------------- int sum; int i; sum=0;

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

sum=sum+a[i][i]*a[i][i]; return sum;

----------------------

第36题 (10.0分) 题号:388

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0。调用该函数求出15~300之 间能同时被3和5整除的数的个数。

------------------------------------------------*/ #include void wwjt();

int sum(int n) {

/**********Program**********/

/********** End **********/ } main() {

int i,s=0;

for(i=15;i<=300;i++) if(sum(i)==1) s=s+1; printf(\ wwjt(); }

答案:---------------------- if(n%3==0&&n%5==0) return(1); return(0);

----------------------

第37题 (10.0分) 题号:399

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。

------------------------------------------------*/

#include void wwjt(); main() {

float fun();

printf(\无理数e的值是:%f\\n\ wwjt(); }

float fun() {

/**********Program**********/ /********** End **********/ }

答案:---------------------- long int j; int i,k; double e,jc; i=1; e=0.0; jc=1.0;

while(jc>=0.000001) {

e=e+jc; j=1;

for(k=1;k<=i;k++) j=j*k; jc=1.0/j; i++; } return e;

----------------------

第38题 (10.0分) 题号:312

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:调用函数fun判断一个三位数是否\水仙花数\。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。

说明:所谓\水仙花数\是指一3位数,其各位数字立方和 等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/ /********** End **********/ } main() {

int n,flag; scanf(\ flag=fun(n); if(flag)

printf(\是水仙花数\\n\ else

printf(\不是水仙花数\\n\ wwjt(); }

答案:---------------------- int bw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0; ----------------------

第39题 (10.0分) 题号:335

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求一个n位自然数的各位数字的积。(n 是小于10的 自然数)

------------------------------------------------*/ #include #include\void wwjt(); long fun(long n) {

/**********Program**********/ /********** End **********/ }

main() {

long m;

printf(\

scanf(\

printf(\ wwjt(); }

答案:---------------------- long d,s=1; while (n>0) {d=n; s*=d; n/=10; }

return s;

---------------------- 第40题 (10.0分) 题号:379

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:给定n个数据, 求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。

------------------------------------------------*/ #include void wwjt();

int station(int s[],int n) {

/**********Program**********/ /********** End **********/ } main() {

int a[100],n,i,t; scanf(\ for(i=0;i

printf(\ wwjt(); }

答案:---------------------- int i,k; k=0;

for(i=1;i<=n;i++) if(s[i]>s[k]) k=i; return(k+1);

----------------------

第41题 (10.0分) 题号:22

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出。 请编写fun函数。

-------------------------------------------------*/

#include \void wwjt();

int fun(int x[],int n) {

/**********Program**********/ /********** End **********/ } main() {

int a[10],i,min; for(i=0;i<10;i++) scanf(\ for(i=0;i<10;i++) printf(\ printf(\ min=fun(a,10); printf(\ wwjt(); }

答案:---------------------- int min,i; min=x[0]; for(i=1;i

{if(x[i]

----------------------

第42题 (10.0分) 题号:381

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:求一批数中小于平均值的数的个数。

------------------------------------------------*/ #include void wwjt();

int average_num(int a[],int n) {

/**********Program**********/ /********** End **********/ } main() {

int n,a[100],i,num; scanf(\ for(i=0;i

printf(\ wwjt(); }

答案:---------------------- int i,sum=0,k=0; double average; for(i=0;ia[i]) k++; return(k);

---------------------- 第43题 (10.0分) 题号:352

/*------------------------------------------------ 【程序设计】

-------------------------------------------------- 功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+ 1/6+...+1/2m 。

例如:若m=9,则应输出:1.414484

------------------------------------------------*/ #include void wwjt();

double fun(int m) {

/**********Program**********/ /********** End **********/ }

main() {

int n;

printf(\ scanf(\

printf(\ wwjt(); }

答案:---------------------- double y=0; int i;

for(i=1; i<=m; i++) {y+=1.0/(2*i); } return(y); ----------------------

第44题 (10.0分) 题号:33

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:用do-while语句求1~100的累计和。

------------------------------------------------*/ #include void wwjt();

long int fun(int n) {

/**********Program**********/ /********** End **********/ }

void main () {

int i=100;

printf(\的累加和为:%ld\\n\ wwjt(); }

答案: int i =1, sum =0; do

{ sum = sum + i; i++; return sum;

第45题 (10.0分) 题号:347

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。

------------------------------------------------*/

#include #define VSIZE 20 void wwjt();

int vector[VSIZE] ;

int fun(int list[],int size) {

/**********Program**********/ /********** End **********/ } main() { int i;

for (i=0;i

vector[i]=rand();

printf(\ }

i=fun(vector,VSIZE);

printf(\ wwjt();

} while ( i <= n );

本文来源:https://www.bwwdw.com/article/uxk7.html

Top