下面的代码段执行后,输出的结果是:int i=0; if (i==0 ) { int i=3; } printf("%d\n", i);
A.0
B.3
C.1
D.2
E.4
A.0
B.3
C.1
D.2
E.4
第1题
[说明]
若矩阵Am×n中存在某个元素aij满足:aij…是第i行中最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。下面程序的功能是输出A中所有鞍点,其中参数A使用二维数组表示,m和n分别是矩阵A的行列数。
[程序]
void saddle (int A[ ] [ ], int m, int n)
{ int i,j,min;
for (i=0;i <m;i + + )
{ min: (1);
for (j=1; j<n; j+ +)
if(A[i][j]<min) (2);
for (j=0; j<n; j+ +)
if ((3))
{ p=0;
while (p<m&&(4))p+ +;
if (p > = m)printf ("%d,%d,%d\n",i,j,min);
}
}
}
[问题1] 将函数代码中的(1)~(4)处补充完整
[问题2]在上述代码的执行过程中,若A为矩阵,则调用saddle(A,3,3)后输出是(5)。
第2题
阅读以下说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
【说明1】
下面的函数countChar(char *text)统计字符串text中不同的英文字母数和每个英文字
母出现的次数(英文字母不区分大小写)。
【C代码1】
Int countchar(char*text)
{
int i,sum=O; /*sum保存不同的英文字母数*/
char *ptr;
int c[26]={0}; /*数组c保存每个英文字母出现的次数*/
/*c[0]记录字母A或a的次数,c[1]记录字母B或b的次数,依此类推*/
ptr=(1); /* ptr初始时指向字符串的首字符*/
while (*ptr) {
if (isupper (*ptr) )
c[*ptr一’A’]++;
else &39;
if (islower (*ptr) )
c[*ptr一’a’]++;
(2); /*指向下一个与字符*/
}
for ( i=0. i<26; i++ )
If(3)sum++;
return sum;
}
【说明2]
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2: f2:f2:2
f3: f3:1
【C代码2]
include <stdio . h>
int fl (int (*f) (int)) .
int f2 (int) ;
int f3 (int) ;
int main ()
{
Printf(“%d\n”,f1(4))
Printf(“%d\n”,f1(5))
return 0;
}
int fl(int (*f) (int) }
{
int n=O;
/*通过函数指针实现函数调用,以返回值作为循环条件*/
While(6) n++
return n;
}
int f2 (int n)
{
printf ("f2: ") ;
return n*n-4;
}
int f3 (int n)
{
printf ("f3: ") ;
return n-1
}
第3题
【问题1】(4分) 写出代码1运行后的输出结果。 【问题2】(3分) 写出代码2运行后的输出结果。 【问题3】(8分) 代码3的功能与代码2完全相同,请补充3中的空缺,将解答写入答题纸的对应栏内。
第4题
【说明】
下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。
下面给出的C程序代码中有五个错误,请指出所有的错误。
【C程序代码】
01 include <stdio.h>
02
03 int main()
04 {
05 long n, num;
06 int i;
07
08 do {
09 printf("请输入一个正整数:");
10 scanf("%ld", n);
11 }while(n <= 0);
12 k = 1;
13 for (i = 1; n >= 0; i++) {
14 if (i % 2 = 1) {
15 num= num+ (n % 10) * k;
16 k = k * 10;
17 }
18 n = n / 10;
19 }
20 printf("新数据为: %d \n",num);
21 return 0;
22 }
第5题
[说明]
函数int find_Max_Min(int a[],int n)的功能是:找出n个元素的数组a中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值:再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;以此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。
[函数]
int find_Max_Min(int a[],int n)
{/*找出n个元素的数组a的最大、最小元素并输出,返回查找过程元素中的比较次数*/
int i,Count=0;
int temp,Maxnum,Minnum;
for(i=0; i<n/2; i++){
Count=Count+1 /*元素比较次数计数*/
if(a[i]>a[(1)])
{/*数组元素交换代码略*/}
}
Maxnum=a[n-1]; Minnum=a[0];
for(i=1;i<n/2+n%2;i++){
Count=(2); /*元素比较次数计数*/
Minnum=(3)? a[i]:Minnum; /*找最小元素*/
Maxnum=(4)?(5):Maxnum; /*找最大元素*/
}
printf("Max=%d\n",Maxnum);
printf("Min=%d\n",Minnum);
return Count;
}
第6题
[函数2.1说明]
函数void find(int *a, int n, int * max, int * min)的功能是在长度为n的整型数组a中,查找最大元素和最小元素的下标。main()中给出了调用find函数的一个实例。
[函数2.1]
include<stdio.h>
void find(int *a, int n,int *max,int * min)
{ int i;
*max =* min=0;
for(i=1;i<n;i+ +)
if(a[i]>a[* max]) (1);
else if(a[i]<a[*min]) (2);
return;
main()
{ int a[]={4,6,8,9,0,6},max,min;
find(a,6,(3));
printf("%5d%5d\n", max,min);
}
[函数2.2说明]
以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是abcdefg和abceef,则输出为abc。
[函数2.2]
include <stdio.h>
main()
{ char str1[100],str2[100],str[100],c;
int i=0,s;
printf("\nInput string 1:");gets(str1);
printf("\nInput string 2:");gets(str2);
while(((4))&&(str1[i]!='\0')&&(str2[i]!='\0')){
(5);
i++;
}
printf("%s\n",str);
}
第7题
请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
int m;
void fun(char*s)
{
int i=0,j=0;
char *p=s;
while(*(p+i))
{
if(*(p+i)>='A'&&*(p+i)<='Z')
{
(1);
}
(2);
}
s[j]='\0';
(3);
}
main()
{
char str[80];
clrscr();
printf("\nEnter a string:");
gets(str);
printf("\n\nThe string is:\%s\n",str);
fun(str);
printf("\n\nThe string of changing is: \%s\n",str);
printf("\n\nThe length of changed strtng is:\%d\n",m);
}
第9题
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
第10题
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!