文档库 最新最全的文档下载
当前位置:文档库 › 温州大学c语言历年期中考试题目精选及解答

温州大学c语言历年期中考试题目精选及解答

A-第一题 正方形 (20分)
问题描述

给定一个字符,请输出一个由该字符构成的边长为4的正方形。

输入

输入只有一行,该行只有一个字符。

输出

输出一个边长为4的正方形,正方形的四条边均由输入的字符构成,正方形的内部由空格构成。

输入样列

*

输出样例

****
* *
* *
****
××××××××××答案见作业或实验××××××××××
×××××××××××××××××××××××××××××××××××



B-第二题 奇偶和(20分)
问题描述

给定n个正整数,求这些整数中奇数的和与偶数的和。
输入

有多组测试数据。
第一行是一个整数T,表示有T组测试数据。
每个测试数据有有2行。
第一行是一个正整数n。
第二行有n个由空格分开的正整数。

输出

输出有T行,每行两个整数,整数之间由一个空格分开。这两个整数分表表示对应测试数据块的奇数和与偶数和。

输入样列

2
4
1 2 3 4
6
1 6 3 4 7 9

输出样例

4 6
20 10
*******************************************************************************************
#include

main ()
{
int t,n,x,i,j,sumeven,sumodd;
scanf("%d",&t);
for(i=1;i<=t;i++){
scanf("%d",&n);
sumeven=sumodd=0;
for(j=1;j<=n;j++){
scanf("%d",&x);
if(x%2==0)
sumeven=sumeven+x;
else
sumodd=sumodd+x;
}
printf("%d %d\n",sumodd,sumeven);
}

}
*******************************************************************************************

C-第五题 加密10分)


问题描述

给定一行由文本,把这行文本加密后输出。
这里的加密算法非常简单:小写字母a,b,c,...,z转化为1,2,3,...,26后输出。大写字母A,B,C,...,Z转化为27,28,29,...,52后输出,其它所有的字符保持不变。




输入

输入有若干行,处理到文件结尾。

输出

把输入的文本加密后输出。

输入样列

Hello,
Welcome to c!

输出样例

345121215,
49512315135 2015 3!
****************************************************************************************
#include

main()
{
char ch;
while((ch=getchar())!=EOF){
if(ch>='a'&&ch<='z'){
ch=ch-'a'+1;
printf("%d",ch);
}
else if(ch>='A'&&ch<='Z'){
ch=ch-'A'+27;
printf("%d",ch);
}
else
putchar(ch);
;
}


}
******************************************************************************************

D-第六题 直角三角形 10分)


问题描述

本题要求用函数完成!!
三条边的边长均为整数的直角三角形称为整数直角三角形。
给定一个整数n,求斜边的边长不超过n的所有整数直角三角形的个数。
输入


输入有多行。
第一行是一个整数T,表示有T个测试数据。
接下来的T行,每行有一个正整数n。

输出

每个测试数据的输出有两行,第一行先输出测试数据的编号,格式如case#i,其中i为测试数据编号。
第二行是一个整数,表示对应的整数直角三角形的个数。

输入样列

4
5
10
20
30

输出样例

case#1
1
case#2
2
case#3
6
case#4
11
**********************************************************************************************
#include

main()
{
int i,n,j,t,k,num,p;
scanf("%d",&t);
for(k=1;k<=t;k++){
scanf("%d",&n);
num=0;
for(p=1;p<=n;p++){
for(i=1;ifor(j=i;jif(i*i+j*j==p*p)
num++;
}

printf("case#%d\n%d\n",k,num);

}

}
************************************************************************************************
E-第七题 数独 10分)
问题描述

数独是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。

数独是一个9x9的方阵(如图1),它是由九个"小九宫格"(图中黑色实线围住的3x3的方阵)构成的,每个小九宫格是由九个小格子构成的,数独的游戏规则如下:
1、在9×9的大正方形中,每一行和每一列都必须填入1至9的数字,不能重复也不能少;
2、在每个由粗线隔开的小九宫格中,也必须填入1至9的数字,同样不能重复也不能少。
这里不需要你考虑如何解数独,而是给定9x9的数独棋盘,每个位置已经填好了数字,你需要写一个程序判断棋盘上的数字是否符合数独的规则。
输入

有多组测试数据。
第一行是一个正整数n,表示后面有n个测试数据。
每一个测试数据占9行,两个测试数据之间有一个空行
每个测试数据的每一行有9个由1~9的数字构成,数字之间没有空格。

输出

对于每个测试数据输出一行。
如果该测试数据符合数独的规则,则输出yes,否则输出no

输入样列

2
143628579
572139468
986754231
391542786
468917352
725863914
237481695
619275843
854396127

572139468
143628579
391542786
986754231
468917352
725863914
237481695
619275843
854396127

输出样例

yes
no
*************************************************************************************
#include

int fun(char a[][10])
{
int i,j,m,l,k,res=1,sum=0;
int b[10];//b[1]到b[9]保存是否有1-9的数字
//判断每行是否满足题意
for(i=0;i<9;i++){
for(j=0;j<10;j++)
b[j]=0;

for(j=0;j<9;j++)
b[a[i][j]-'0']=1;

sum=0;
for(j=0;j<10;j++)
sum=sum+b[j];
if(sum!=9)
re

turn 0;
}

//判断每列是否满足题意
for(i=0;i<9;i++){
for(j=0;j<10;j++)
b[j]=0;

for(j=0;j<9;j++)
b[a[j][i]-'0']=1;


sum=0;
for(j=0;j<10;j++)
sum=sum+b[j];
if(sum!=9)
return 0;
}

//判断每个九宫是否满足题意
for(i=0;i<9;i=i+3){
for(j=0;j<9;j=j+3){

for(k=0;k<10;k++)
b[k]=0;

for(m=i;mfor(l=j;lb[a[m][l]-'0']=1;

sum=0;

for(k=0;k<10;k++)
sum=sum+b[k];
if(sum!=9)
return 0;

}
}

return res;
}


main ()
{
char s[9][10];
int i,j,n;
scanf("%d",&n);
getcha

相关文档
相关文档 最新文档