C语言题库2015

2019-04-09 09:58

Q257.(10分)输入一行字符,用函数编程统计其中有多少单词。假设单词之间以空格分开。 **输入格式要求:提示信息:\**输出格式要求:\参考答案

#include

int CountWords(char str[]); int main() {

char str[20];

printf(\ gets(str);

printf(\ return 0; }

int CountWords(char str[]) {

int i, num;

num = (str[0] != ' ') ? 1 : 0; for (i = 1; str[i] != '\\0'; i++) {

if (str[i] != ' ' && str[i - 1] == ' ') {

num++; } }

return num; }

Q1683.(10分)用二维数组作为函数参数,实现矩阵转置。按如下函数原型编程计算并输出m×n阶矩阵的转置矩阵。其中,m和n的值由用户从键盘输入。已知m和n的值都不超过10。

void Transpose(int a[][N], int at[][M], int m, int n); void InputMatrix(int a[][N], int m, int n); void PrintMatrix(int at[][M], int n, int m); 输入提示信息:\输入格式:\

输出提示信息和格式:\参考答案

#include #define M 10 #define N 10

void Transpose(int a[][N], int at[][M], int m, int n); void InputMatrix(int a[][N], int m, int n); void PrintMatrix(int at[][M], int n, int m);

int main() {

int s[M][N], st[N][M], m, n; printf(\ scanf(\ InputMatrix(s, m, n); Transpose(s, st, m, n);

printf(\ PrintMatrix(st, n, m); return 0; }

/* 函数功能:计算m*n矩阵a的转置矩阵at */ void Transpose(int a[][N], int at[][M], int m, int n) {

int i, j;

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

for (j = 0; j < n; j++) {

at[j][i] = a[i][j]; } } }

/* 函数功能:输入m*n矩阵a的值 */ void InputMatrix(int a[][N], int m, int n) {

int i, j;

printf(\ for (i = 0; i < m; i++) {

for (j = 0; j < n; j++) {

scanf(\ } } }

/* 函数功能:输出n*m矩阵at的值 */ void PrintMatrix(int at[][M], int n, int m) {

int i, j;

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

for (j = 0; j < m; j++) {

printf(\ }

printf(\ } }

Q552.(10分)如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则A和B称为亲密数。求10000以内的亲密数。

**输出格式要求:\ 程序运行示例如下: ( 220, 284) (1184,1210) (2620,2924) (5020,5564) (6232,6368)

参考答案

#include int main() {

int a, b, i, n;

for (a = 1; a < 10000; a++) {

b = 0;

for (i = 1; i <= a / 2; i++) {

if (a % i == 0) b += i; }

n = 0;

for (i = 1; i <= b / 2; i++) {

if (b % i == 0) n += i; }

if (n == a && a < b)

printf(\ }

return 0; }

Q381.(10分)*验证卡布列克运算。即:任意一个四位数,只要它们各个位上的数字是不全相

同的,就有这样的规律:

(1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数; (2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则得到的数不足四位);

(3)求两个数的差,得到一个新的四位数(高位零保留)。

重复以上过程,最后得到的结果总是6174。这个数被称为卡布列克常数。请编写一个递归函数,完成以上的卡布列克运算。

**输入格式要求:\提示信息:\**输出格式要求:\程序运行示例如下: Enter number: 1234 [1]:4321-1234=3087 [2]:8730-378=8352 [3]:8532-2358=6174 参考答案

#include int count=0; main() {

int n;

printf(\ scanf(\ vr6174(n); }

vr6174(int num) {

int each[4],max,min; if(num!=6174&&num) {

parse_sort(num,each);

max_min(each,&max,&min); num=max-min;

printf(\ vr6174(num); } }

parse_sort(int num,int *each) {

int i,*j,*k,temp; for(i=0;i<=4;i++) {

j=each+3-i; *j=num;

num/=10; }

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

for(j=each,k=each+1;j*k)

{ temp=*j; *j=*k; *k=temp;} return; }

max_min(int *each,int *max,int *min) {

int *i; *min=0;

for(i=each;i

for(i=each+3;i>=each;i--) *max=*max*10+*i; return; }

Q457.(10分)从键盘输入一个长度为N(比如10)的整型数组,而后将数组中小于零的元素移动到数组的前端,大于零的元素移动到数组的后端,等于零的元素留在数组中间。比如原始数组为:2 -5 -89 75 0 -89 0 93 48 0,经过处理后的数组为:-5 -89 -89 0 0 0 75 93 48 2。由于不要求数组有序,所以不允许用排序方法。

**输入格式要求:\提示信息:\**输出格式要求:\程序运行示例如下:

Please input 10 interger number 2 -5 -89 75 0 -89 0 93 48 0

-5 -89 -89 0 0 0 75 93 48 2 参考答案

#include

#define N 10

int main() {

int a[N];

int i, p1 = 0, p2 = 9, p, temp;

printf(\ for (i = 0; i <= N - 1; i++) {

scanf(\ }


C语言题库2015.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:部编版九年级语文上册期中检测卷(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: