SDUT-程序设计基础Ⅰ-单元测试3模拟

1-1 sdut- C语言实验——矩阵下三角元素之和

任务描述:

输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。

函数接口定义:

int f(int (*p)[10],int n);

其中 pn 都是用户传入的参数。 p 的值为地址; n 是[1, 10]区间内的个位数。函数需要返回求和后的数据。

裁判测试程序样例:

#include <stdio.h>
int  f(int (*p)[10],int n);

int main()
{
    int n,i,j,sum;
    int a[10][10];
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    sum=f(a,n);
    printf("%d",sum);
    return 0;
}


/* 请在这里填写答案 */

输入样例:

5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

输出样例:

75

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

int  f(int (*p)[10],int n)
{
	int i,j,c=0;
	for(i=0;i<n;i++)
	{
		for(j=0;j<=i;j++)
		{
			c+=p[i][j];
		}
	}
	return c;
}

1-2 sdut-C语言实验- n个数的排序

任务描述:

Qiao当上了体育委员,现在老师让他去给班级里的人排队,Qiao刚学了排序,所以他想以这种方式给班级里的人排队(从矮到高),他想知道排序完成后的结果。

函数接口定义:

void sort(int *p,int n);

其中 pn 都是用户传入的参数。 p 的值为传递过来的地址; n 的为正整数(1<=n<=100)。函数不需要返回数据。

裁判测试程序样例:

#include <stdio.h>
void sort(int *p,int n);
int main()
{
    int a[100];
    int n,i;
    int *p1;
    while(scanf("%d",&n)!=EOF)
    {
        for(p1=a; p1<a+n; p1++)
            scanf("%d",p1);
        sort(a,n);
        for(i=0; i<n-1; i++)
            printf("%d ",a[i]);
        printf("%d\n",a[n-1]);
    }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

3
176 175 174

输出样例:

174 175 176

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

void sort(int *p,int n)
{
	int i,j,t;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++) { if(*(p+j)>*(p+j+1))
			{
				t=*(p+j);
				*(p+j)=*(p+j+1);
				*(p+j+1)=t;
			}
		}
	}
}

1-3 拆分实数的整数与小数部分

任务描述:

本题要求实现一个拆分实数的整数与小数部分的简单函数。

函数接口定义:

void splitfloat( float x, int *intpart, float *fracpart );

其中x是被拆分的实数(0x10000),*intpart*fracpart分别是将实数x拆分出来的整数部分与小数部分。

裁判测试程序样例:

#include <stdio.h>

void splitfloat( float x, int *intpart, float *fracpart );

int main()
{
    float x, fracpart;
    int intpart;
    
    scanf("%f", &x);
    splitfloat(x, &intpart, &fracpart);
    printf("The integer part is %d\n", intpart);
    printf("The fractional part is %g\n", fracpart);
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

2.718

输出样例:

The integer part is 2
The fractional part is 0.718

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

void splitfloat( float x, int *intpart, float *fracpart ){
	int y=(int)x;
	float z;
	*intpart=y;
	z=(x-(int)x);
	*fracpart=z ;
	return;
}

1-4 sdut-C语言实验-计算组合数

任务描述:

计算组合数。C(n,m),表示从n个数中选择m个的组合数。
计算公式如下:
若:m=0,C(n,m)=1
否则, 若 n=1,C(n,m)=1
否则,若m=n,C(n,m)=1
否则 C(n,m) = C(n-1,m-1) + C(n-1,m).

函数接口定义:

在这里描述函数接口。例如:
int fun(int n,int m);

其中 nm 都是用户传入的参数(0 <= m <= n <= 20)。

裁判测试程序样例:

#include <stdio.h>
int fun(int n,int m);

int main()
{
 int t,n,m,i;
 scanf("%d",&t);
 for(i=1;i<=t;i++)
 {
     scanf("%d %d",&n,&m);
     printf("%d\n",fun(n,m));
 }
    return 0;
}

/* 请在这里填写答案 */

输入样例:

3
2 1
3 2
4 0

输出样例:

2
3
1

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

int fun(int n,int m)
{
    if((m==0)||(n==1)||(m==n))
	{
		return 1;
	}
	else
		return fun(n-1,m-1)+fun(n-1,m);
}

1-5 sdut-C语言实验- 简单字符串排序

任务描述:

从键盘输入10个学生的姓名和成绩,请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)。

输入格式:

输入共11行,前10行每行是一个学生的姓名,最后一行是10个用空格分开的整数表示对应的10个学生成绩。(姓名大小不超过20个字符)

输出格式:

输出姓名按字典序排列后的学生姓名和成绩,共10行,每个学生的姓名和成绩占一行,姓名和成绩间用逗号分开。

输入样例:

Bush
White
Mark
Jean
Black
Wood
Jenny
Frank
Bill
Smith
78 85 96 65 46 83 77 88 54 98

输出样例:

Bill,54
Black,46
Bush,78
Frank,88
Jean,65
Jenny,77
Mark,96
Smith,98
White,85
Wood,83

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

#include <stdio.h>
int main()
{
    int i,j,b[10],t;
    char a[10][20],c[20];
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    for(i=0;i<10;i++)
    {
        scanf("%s",a[i]);
    }
    for(i=0;i<10;i++)
    {
        scanf("%d",&b[i]);
    }
    for(j=0;j<9;j++)
    {
        for(i=0;i<9;i++) { if(strcmp(a[i],a[i+1])>0)
            {
                strcpy(c,a[i]);
                strcpy(a[i],a[i+1]);
                strcpy(a[i+1],c);
                t=b[i];
                b[i]=b[i+1];
                b[i+1]=t;
            }
        }
    }
    for(i=0;i<9;i++)
    {
        printf("%s,%d\n",a[i],b[i]);
    }
     printf("%s,%d",a[9],b[9]);
    return 0;
}

1-6 sdut-C语言实验 – 字符统计

任务描述:

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

输入格式:

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

输出格式:

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

输入样例:

在这里给出一组输入。例如:

I am a student
a good programming problem
ABCD abcd ABCD abcd

输出样例:

在这里给出相应的输出。例如:

a 2
o 4
A 2

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

#include <stdio.h>
int main()
{
    char s[1000],k;
    int i,max;
    while(gets(s))
    {
        int a[1000]={0};
        max=0;
        for(i=0;s[i]!='\0';i++)
        {
            if(s[i]!=' ')
                a[s[i]]++;
        }
        for(i='A';i<='z';i++) { if(a[i]>max)
                {
                    max=a[i];
                    k=i;
                }
        }
        printf("%c %d\n",k,max);
    }
    return 0;
}

1-7 sdut- C语言实验-删除指定字符

任务描述:

从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

输入格式:

第一行是一个字符串,不超过100个字符 ,可以带空格;第二行是一个字符。

输出格式:

删除指定字符后的字符串。

输入样例:

在这里给出一组输入。例如:

sdf$$$sdf$$
$

输出样例:

在这里给出相应的输出。例如:

sdfsdf

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

#include <stdio.h>
int main()
{
    int i;
    char s[100],p;
    gets(s);
    scanf("%c",&p);
    for(i=0;s[i]!='\0';i++)
    {
        if(s[i]!=p)
            printf("%c",s[i]);
    }
    printf("\n");
    return 0;
}

1-8 字符串逆序

任务描述:

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

在一行中输出逆序后的字符串。

输入样例:

在这里给出一组输入。例如:

Hello World!

输出样例:

在这里给出相应的输出。例如:

!dlroW olleH

相关限制:

代码长度限制16KB            时间限制400ms            内存限制64MB            栈限制8192KB

答案:

#include <stdio.h>
int main()
{
    char s[101],i;
    gets(s);
    for(i=strlen(s)-1; i>=0; i--)
    {
           printf("%c",s[i]);
    }
    return 0;
}
如果对您有帮助的话,能否支持一下博主?
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇