+-
B试卷
1、以下程序的功能是:
输入任意整数n(0
main()
{
int i,j,n;
char (1) ;
printf("Please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1; (2) ;j++)
{ printf("%2c",ch);
(3) ;
}
(4) ;
}
}
2. 以下程序的功能是:
从一个字符串中截取前面给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。例如,str1="ABCDEF",n=4,截取后的字符数组str2="ABCD"。请填空完成该程序。
#include
#include
#define LEN 80
main()
{
char str1[LEN],str2[LEN];
int n,i;
printf("输入字符串:\n");
gets(str1);
printf("输入子字符串的长度:");
scanf( "%d", (1) );
for(i=0;i
int main()
{ int n,k,a;
printf("请输入一个正整数: ");
scanf("%d", n);
k=1;
do {
a=n%10;
n=n/10;
if ( n%10 <= a ) k=0;
}while ( n!=0 );
if ( k = 1 )
printf("各位数字是从小到大排列\n");
else
printf("各位数字不是从小到大排列\n");
return 0;
}
2. 程序调试题2
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_2.C文件和B_3_2.EXE文件)保存到目录C:\KS\中。
功能说明:输入一个以回车符结束的字符串(少于30个字符),若其中的第偶数个字符是小写英文字母,则转换成对应的大写英文字母,最后输出处理后的字符串。例如输入:jdk-7u25-win7<回车>,则输出:jDk-7U25-WiN7 。
带错误原程序(见C:\KS\B_3_2.C):
#include
#include
int main()
{ char str[30];
int i, n;
printf("请输入一个字符串:");
gets(&str);
n = strlen(str);
for (i=0; i=a && str[i]<=z )
str[i] = str[i] + (a - A);
puts(str);
return 0;
}
3. 程序调试题3
调试要求:下列程序包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括B_3_3.C文件和B_3_3.EXE文件)保存到目录C:\KS\中。
功能说明:以下程序的数组t中存放了某城市7月15日到8月15日共32天每一天的日最高气温,程序的功能是统计并输出最高温度达到40℃或以上的超高温天的天数,以及最高温度在35℃或以上的连续高温天最多有多少天。针对程序中给出的原始数据,程序应输出:
最高温度达到40℃或以上的超高温天有6天
最高温度在35℃或以上的连续高温天最多有12天
带错误原程序(见C:\KS\B_3_3.C):
#include
int fun(int a[], int n, int *p)
{ int i, c = d40 = d = 0;
for (i=1; i=35 )
{ c++;
if ( c>d ) d=c;
if ( a[i]>=40 ) d40++;
}
else c=0;
}
p = d;
return d40;
}
int main()
{ int t[32]={40,36,34,35,36,37,36,37,38,40,39,
38,37,36,34,36,37,38,36,34,36,
37,38,39,40,40,41,40,39,38,37,36};
int d40,d;
d40=fun(t, 32, d);
printf("最高温度达到40℃或以上的超高温天有%d天\n", d40);
printf("最高温度在35℃或以上的连续高温天最多有%d天\n", d);
return 0;
}
(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)
1.编程题1
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_1.c文件和B_4_1.EXE文件)保存到目录C:\KS\中。
程序功能:输入整数n(设1000≤n≤9999),将n按十进制位分解为各乘式的累加和,格式参见示例,不输出系数为0的乘式。
运行示例1:
输入:1234
输出:1234=1*1000+2*100+3*10+4*1
运行示例2:
输入:2030
输出:2030=2*1000+3*10
2.编程题2
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括B_4_2.c文件和B_4_2.EXE文件)保存到目录C:\KS\中。
程序功能:按示例格式完成以下要求。
(1) 输入10个整数,保存在数组中。
(2) 计算并输出10个整数的最小值(注:数组中可能存在多个最小值)。
(3) 输出数组中每个最小值的下一个元素及其下标(如果数组的最后一个元素正好为最小值,不输出该元素的下一个元素)。
(4) 计算并输出上述元素的平均值(保留小数点后一位小数,如果数组只有一个最小值且正好是最后一个元素,不输出平均值)
运行示例1:
输入:9 0 2 0 0 1 0 3 6 1
输出:min=0,a[2]=2,a[4]=0,a[5]=1,a[7]=3,ave=1.5
说明:10个元素的最小值为0,共出现4次,元素0的下一个元素依次为2、0、1、3,这4个元素的平均值为1.5。
运行示例2:
输入:60 39 81 90 60 39 90 70 78 39
输出:min=39,a[2]=81,a[6]=90,ave=85.5
说明:10个元素的最小值为39,共出现3次,元素39的下一个元素依次为81、90(最后一个39不存在下一个元素),81与90的平均值为85.5。
运行示例3:
输入:9 0 2 0 0 1 0 3 6 -1
输出:min=-1
说明:最小值为-1,是最后一个元素且只出现一次,不存在下一个元素,也没有平均值。
C试卷
1、以下程序的功能是:
将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。
例如, 若输入18和2, 则应输出10010(即十进制数18转换成二进制表示是10010)。
#include
void fun( int m, int k )
{
int a[20], i;
for( i = 0; m>0; i++ ) {
a[i] = _____(1)____
m /= k;
}
for( ; i>0; _____(2) _____)
printf( "%d", _____ (3) _____ );
}
main()
{
int b, n;
printf( "\nPlease enter a number and a base:\n" );
scanf( "%d %d", &n, &b );
fun(_____(4_____ );
}
以下程序的功能是:输出下列10行10列的矩阵。请填空完成该程序。
#include
void fill(int b[10][10],int n) /*按1,2,3,4,5顺序依次填充数组内容*/
{
int i,j;
for(i=n-1;i<11-n;i++)
for(j=n-1;j< (1) ;j++)
b[i][j]= (2) ;
}
int main( )
{
int a[10][10],k,i,j;
for(k=1; (3) ;k++)
fill( (4) );
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%3d",a[i][j]);
printf("\n");
}
return 0;
}
(一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错,每改正1处得3分,共30分)
1. 程序调试题1
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_1.C文件和C_3_1.EXE文件)保存到目录C:\KS\中。
功能说明:已知Fibonacci数列的前两项均为1,从第三项开始它的值都为它的前两项的和。程序的功能是输出Fibonacci数列前18项每一项的值,不要多输出一项,也不要少输出一项,要求每一行输出6个数,输出结果为:
1 1 2 3 5 8
13 21 34 55 89 144
233 377 610 987 1597 2584
带错误原程序(见C:\KS\C_3_1.C):
#include
int main()
{ long fib1=fib2=1, fib3;
int n;
printf("%6ld%6ld", fib1,fib2);
for (n=1; n<=18; n++)
{ fib3=fib1+fib2;
printf("%6ld", fib3);
if ( n%6=0 ) printf("\n");
fib1=fib2;
fib2=fib3;
}
return 0;
}
2. 程序调试题2
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_2.C文件和C_3_2.EXE文件)保存到目录C:\KS\中。
功能说明:输入一个以回车符结束的字符串(少于30个字符),将其中的字符 - 替换为字符 + ,所有的数字字符都替换为字符 # ,最后输出处理后的字符串。例如输入:jdk-7u25-win7<回车>,则输出:jdk+#u##+win# 。
带错误原程序(见C:\KS\C_3_2.C):
#include
int main()
{ char str[30]; int i;
printf("请输入一个字符串:");
gets(str[30]);
for (i=0; str[i]!=\0; i++)
{ if ( str[i] == - )
str[i] = +;
else if ( str[i]>=0 && str[i]<=9 )
str[i] = "#";
}
puts(*str);
return 0;
}
3. 程序调试题3
调试要求:下列程序包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括C_3_3.C文件和C_3_3.EXE文件)保存到目录C:\KS\中。
功能说明:入秋标志着夏秋季节完成转换,气候学上入秋的标准是必须要连续5天日平均气温低于22℃,则这连续5天中的第一天为入秋日,程序的功能是判断9月份是否入秋并输出有关信息。若入秋,则输出在哪一天入秋,否则输出9月没有入秋。说明:以下程序的数组t中存放了某城市9月份一个月的日平均气温,数组t中下标为0的元素闲置而没有利用,针对程序中给出的9月份一个月的日平均气温,入秋日为9月25日。
带错误原程序(见C:\KS\C_3_3.C):
#include
int fun(int *a, n)
{ int i,c;
for (i=1; i<=n; i++)
{ if ( a[i] < 22 )
{ c++;
if ( c>5 )
return i-4;
}
else c=0;
}
return 0;
}
int main()
{ int t[31]={0,25,26,30,28,27,25,26,20,18,18,
23,23,22,23,22,21,20,21,20,24,
26,25,24,23,21,20,18,21,21,23};
int d;
d=fun(*t,30);
if ( d==0 )
printf("9月没有入秋\n");
else
printf("9月%d日开始入秋\n", d);
return 0;
}
(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)
1.编程题1
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_4_1.c文件和C_4_1.EXE文件)保存到目录C:\KS\中。
程序功能:输入整数n(设1000≤n≤9999),以类似读数拼音的格式输出该数,拼音中"千、百、十"分别使用"Q、B、S"表示,格式要求参见示例。n为1000倍数时不输出百位数、十位数与个位数,n为100倍数时不输出十位数与个位数,n为10的倍数时不输出个位数。
运行示例1:
输入:1234
输出:1Q,2B,3S,4
运行示例2:
输入:9008
输出:9Q,0B,0S,8
运行示例3:
输入:5060
输出:5Q,0B,6S
2.编程题2
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_4_2.c文件和C_4_2.EXE文件)保存到目录C:\KS\中。
程序功能:按示例格式完成以下要求。
(1) 输入整数n(设2≤n≤20),接着输入n个整数(保存在数组a中,设a[i]≥0)。
(2) 计算并输出数组的最大值。
(3) 输出数组中每个最大值的前一个元素及其下标(如果数组的第一个元素正好为最大值,不输出该元素的前一个元素)。
(4) 输出上述元素的累加和。
运行示例1:
输入:
6
81 255 90 255 78 255
输出:max=255,a[0]=81,a[2]=90,a[4]=78,sum=249
说明:输入n为6,接着输入6个元素到数组中,最大值为255,元素255的前一个元素依次为81、90、78,这3个数的累加和为249。
运行示例2:
输入:
12
99 50 99 60 48 99 84 49 99 69 51 99
输出:max=99,a[1]=50,a[4]=48,a[7]=49,a[10]=51,sum=198
说明:输入n为12,接着输入12个元素到数组中,最大值为99,第1个99不存在前一个元素,其余4个99的前一个元素依次为50、48、49、51,这4个数的累加和为198。
D试卷
1、以下程序的功能是:
移动一维数组中的内容,若数组中有n个整数,要求把下标从m到n-1(m≤n-1)的数组元素平移到数组的前面。
例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,m的值为7。移动后,一维数组中的内容应为8,9,10,11,12,13,14,15,1,2,3,4,5,6,7。
#include
#define N 80
void fun(int *w, int m, int n)
{
int i,j,t;
for(i=m; (1) ;i++)
{ /*数组各元素依次向后平移一个位置*/
t= (2) ;
for(j=n-2;j>=0;j--)
w[j+1]= (3) ;
w[0]=t;
}
}
main()
{
int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i, m, n=15;
printf("The original data:\n");
for(i=0;i
#include
#define N 80
void fun(char *s, char t[])
{ int i, (1) ;
for(i=0; i
int main()
{ int a,b,c;
printf("请输入两个正整数: ");
scanf("%d%d", &a,&b);
if (a,则输出:n=7257 。说明:字符串"jdk-7u25-win7"过滤掉所有的非数字字符后变成十进制字符串"7257",转换成十进制整数是7257 。
带错误原程序(见C:\KS\D_3_2.C):
#include
int main()
{ char str[30];
int i, n;
printf("请输入一个字符串:");
gets(str);
n = 1;
for (i=0; str[i]!=\0; i++)
if ( 0 <= str[i] <= 9 )
n = n*10 + str[i] - 0;
printf("n=%d\n", n);
return 0;
}
3. 程序调试题3
调试要求:下列程序包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/***/字样的注释),使其运行能得到正确的结果。将结果(包括D_3_3.C文件和D_3_3.EXE文件)保存到目录C:\KS\中。
功能说明:入夏标志着春夏季节完成转换,气候学上入夏的标准是必须要连续5天日平均气温达到22℃或以上,则这连续5天中的第一天为入夏日,程序的功能是判断5月份是否入夏并输出有关信息。若入夏,则输出在哪一天入夏,否则输出5月没有入夏。说明:以下程序的数组t中存放了某城市5月份一个月的日平均气温,数组t中下标为0的元素闲置而没有利用,针对程序中给出的5月份一个月的日平均气温,入夏日为5月16日。
带错误原程序(见C:\KS\D_3_3.C):
#include
void fun(int a[], int n)
{ int i,c;
c=0;
for (i=1; i<=n; i++)
{ if ( a[i] > 22 )
{ c++;
if ( c>=5 )
return i-5;
else
continue;
}
c=0;
}
return 0;
}
int main()
{ int t[32]={0,20,21,22,22,19,18,18,19,22,23,
22,21,20,21,20,24,22,25,24,23,
21,23,22,21,22,25,26,30,28,27,28};
int d;
d=fun(t[],31);
if ( d==0 )
printf("5月没有入夏\n");
else
printf("5月%d日开始入夏\n", d);
return 0;
}
(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)
1.编程题1
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_4_1.c文件和D_4_1.EXE文件)保存到目录C:\KS\中。
程序功能:输入整数n(设100≤n≤999),以类似读数拼音的格式输出该数,拼音中"百、十"分别使用"B、S"表示,格式要求参见示例。n为100倍数时不输出十位数与个位数,n为10的倍数时不输出个位数,十位数为0而个位数不为0时省略"S"。
运行示例1:
输入:123
输出:1B2S3
运行示例2:
输入:908
输出:9B08
运行示例3:
输入:560
输出:5B6S
2.编程题2
编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括D_4_2.c文件和D_4_2.EXE文件)保存到目录C:\KS\中。
程序功能:按示例格式完成以下要求。
(1) 连续输入整数直至-1,整数保存在数组中,设整数个数不超过20个。
(2) 判断数组中是否存在"0 0 161 x y z 255"样式的数字子串。
(3) 如果存在,输出x、y和z的值,如果不存在输出"NO DATA"。
运行示例1:
输入:0 0 161 36 55 164 255 -1
输出:DATA:36 55 164
运行示例2:
输入:0 0 161 0 0 161 164 55 36 255 0 -1
输出:DATA:164 55 36
运行示例3:
输入:0 78 0 0 161 55 164 36 250 255 -1
输出:NO DATA
部分答案
二级 C 程序设计 B 场 参考答案
单选题
1. D 2. D 3. D 4. A 5. A 6. D 7. A 8. C 9. C 10. B
程序填空题
1. 1)【ch=A】
2)【j<=n-i+1】【j
展开阅读全文
相关搜索