二级C语言程序设计题专项强化真题试卷3
程序设计题
1.请编写一个函数fun,它的功能是:将SS所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入”abc4Efg”,则应输出”aBc4EFg”。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序如下:
#include
#include
#include
#include
void fun(char*ss)
{
}
void main()
{
FILE*wf;
char tt[81],S[81]=\\
void fun(char*ss)
{
int i;
for(i=0;ss[i]!=’\0’;i++) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/
{
if(i%2==1&&ss[i]>=’a’&&ss[i]<=’z’)
ss[i]=ss[i]一32;
}
}
解析:该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置字符是否是小写字母,如果是再通过其转换方法进行转换。
从C语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。
2.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“abc4Efg”,则应输出“aBc4EFg”。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include
#include
#include
#include
void fun(char*ss)
{
}
void main()
{
FILE * wf;
char tt[81],s[81]=\\
void fun(char*ss)
{
if(ss==NULL)
{return;}
im i:
for(i=0;ss[i]!=’\0’;i++) /*斗ss所指字符串中所有下标为奇数位置的字母转换为大写*/
{
if(i%2==1&&ss[i]>=’a’&&ss[i]<=’z’)
ss[i]=ss[i]一32;
}
}
解析:该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置的字符是否是小写字母,如果是再通过其转换方法进行转换。
从C语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。
3.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分濂程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include
#include
#include
#define M 3
#define N 4
void fun(int tt[M][N],int pp[N])
{
}
void main()
{
int t[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};
int P[N],i,j,k;
system(\\
void fun(int tt[M][N],int pp[N])
{
int i,j,max;
if(tt==NULL‖pp==NULL)return;
for(j=0;j<N;j++)
{
max=tt[0][j];/*假设各列中的第一个元素最大*/
for(i=0;i<M;i++)
if(tt[i][j]>max)/*如果各列中的其他元素比最大值大,则将这个更大的元素看作当前该列中最大元素*/
max=tt[i][j];
pp[j]=max;/*将各列的最大值依次放入pp数组中,*/
}
}
解析:本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看作当前该列中最大的元素,继续与该列中其他元素进行比较。
4.使用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>
#pragma 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(’’%d\n’’,resuh[i]);
NONO(result,n);
}
本文档预览:3600字符,共4510字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载