第1题
从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1 = 321,并输出321。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <math.h> #include <stdio.h> int main() { int x, b0, b1, b2, y; printf("Input x:"); scanf("%d", &x); x = (int)fabs(x); b2 = ________; /* 计算百位数字 */ b1 = _________; /* 计算十位数字 */ b0 = _________; /* 计算个位数字 */ y = b2 + b1*10 + b0*100; printf("y = %d\n",y); return 0; }
A、第10行: x / 100 第12行: (x - b2 * 100) / 10 第14行: x % 10
B、第10行: x % 100 第12行: (x - b2 * 100) / 10 第14行: x / 10
C、第10行: x / 100 第12行: (x - b2 * 100) % 10 第14行: x / 10
D、第10行: x / 10 第12行: (x - b2 * 10) / 10 第14行: x % 100
第2题
从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序运行结果示例1: Input 10 numbers:1 2 3 4 5 6 7 8 9 10↙ max=10,pos=9 min=1,pos=0 程序运行结果示例2: Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9↙ max=10,pos=5 min=1,pos=6 #include <stdio.h> int FindMax(int a[], int n, int *pMaxPos); int FindMin(int a[], int n, int *pMinPos); int main() { int a[10], maxValue, maxPos, minValue, minPos, i; printf("Input 10 numbers:"); for (i=0; i<10; i++) { scanf("%d", &a[i]); 输入10个数 } maxvalue="FindMax(a," 10, _________); 找最大值及其所在下标位置 minvalue="FindMin(a," 找最小值及其所在下标位置 printf("max="%d,pos=%d\n"," maxvalue, maxpos); printf("min="%d,pos=%d\n"," minvalue, minpos); return 0; 函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值 int findmax(int a[], n, *pmaxpos) i, max; max="a[0];" 假设a[0]为最大值 __________; 假设最大值在数组中的下标位置为0 for (i="1;" i if (a[i]> max) { max = a[i]; __________; //pMaxPos指向最大值数组元素的下标位置 } } return max ; } //函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值 int FindMin(int a[], int n, int *pMinPos) { int i, min; min = a[0]; //假设a[0]为最小 __________; //假设最小值在数组中的下标位置为0 for (i=1; i<10; i++) { if (a[i] min) min="a[i];" __________; pminpos指向最小值数组元素的下标位置 } return ;> A、第13行:&maxPos 第14行:&minPos 第25行:*pMaxPos = 0 第32行:*pMaxPos = i 第43行:*pMinPos = 0 第50行:*pMinPos = i
B、第13行:maxPos 第14行:minPos 第25行:pMaxPos = 0 第32行:*pMaxPos = i 第43行:pMinPos = 0 第50行:*pMinPos = i
C、第13行:maxPos 第14行:minPos 第25行:pMaxPos = 0 第32行:pMaxPos = i 第43行:pMinPos = 0 第50行:pMinPos = i
D、第13行:&maxPos 第14行:&minPos 第25行:pMaxPos = 0 第32行:pMaxPos = i 第43行:*pMinPos = 0 第50行:*pMinPos = i
第6题
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序;
include<stdio.h>
include <conio.h>
/*************found**************/
void fun(int a,b)
{ int t;
/*************found**************/
t=b;b=a;a=t;
}
main()
{ int a,b;
clrscr();
printf("Enter a, b: "); scanf("%d%d",
&a,&b);
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
}
第8题
【说明】
以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。
int main(void)
{
int a, b, c, max, min;
printf("input three numbers: ");
scanf("%d%d%d", &a, &b, &c);
if(a>b) /*判断1*/
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(max<c) /*判断2*/
max=c;
else if(min>c) /*判断3*/
min=c;
printf("max=%d\nmin=%d", max, min);
return 0;
}
请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。
为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。
对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
请帮忙给出每个问题的正确答案和分析,谢谢!
第9题
要求从键盘上输入一个不多于5位数的正整数,依次输出每位数字(从低位到高位依次输出)。(每两个数字之间用英文逗号隔开)
如:输入: 3689
则应输出: 9,8,6,3
注:千万不要有任何多余的输入输出,包括/n之类的一定不要有。
如printf(" %d,%d" ,a,b);即可。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!