第3题
5、编程实现一个输入指定范围内的整数的函数 题目内容: 编程实现一个输入指定范围内的整数的函数getint,其完整的函数原型为:int getint(int min, int max);,它负责接收用户的输入进行验证,保证接收的一定是一个介于min和max之间([min, max]区间内)的一个整数并最后返回该整数。如果用户输入不合法,则会提示继续输入,直到输入合法时为止。要求编写完整的程序并测试你所写的getint函数。 程序的运行结果示例: Please enter min,max: 3,100↙ Please enter an integer [3..100]: -2↙ Please enter an integer [3..100]: 0↙ Please enter an integer [3..100]: 116↙ Please enter an integer [3..100]: 58↙ The integer you have entered is:58 输入提示信息:"Please enter min,max:\n" "Please enter an integer [%d..%d]:\n" 输入格式: 输入数据区间的最小值和最大值:"%d,%d" 输入指定范围内的整数: "%d" 输出格式:"The integer you have entered is:%d\n" 为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 题目运行时间限制: 500ms 题目运行内存限制: 32000kb
第4题
利用InputBox函数(如图1)输入一个合法的3位正整数,然后求该数逆序并利用Print方法在窗体输出。例如,输入123,输出是321,要求(按图2样例)输出原输入的数和逆序后的结果。 程序要求判断若输入的数不是3位数,用MsgBox显示提示信息,如图3所示,结束程序运行。图1 图2图3 保存工程和窗体,窗体文件名为:昵称-3-2.frm;工程名为:昵称-3-2.vbp。将工程文件和窗体文件压缩成:昵称-3-2.rar,以附件形式提交。 提示: ① 利用 “Mod”和 “\” 运算符将3位数分离出它的百位、十位和个位,然后利用乘法和加法得到逆序的3位数。
第5题
下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下: Input n(n<=10):10↙ 0 1 2 3 4 6 7 9 10 input numbers:1 –2 -1 ↙ exchange results: -2 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include> void ReadData(int a[], int n); void PrintData(int a[], int n); void MaxMinExchang(int a[], int n); void Swap(int *x, int *y); int main() { int a[10], n; printf("Input n(n<=10):"); scanf("%d", &n); printf("input %d numbers:", n); readdata(a, maxminexchang(a, printf("exchange results:"); printdata(a, return 0; } * 函数功能:输入数组a的n个元素值 void readdata(int a[], int n) { i; for (i="0;" i i++) &a[i]); 函数功能:输出数组a的n个元素值 printdata(int printf("%5d", a[i]); printf("\n"); 函数功能:将数组a中的最大数与最小数位置互换 maxminexchang(________, maxvalue="a[0]," minvalue="a[0]," maxpos="0," minpos="0;" if (a[i]> maxValue) { maxValue = _______; maxPos = ____; } if (a[i] < minValue) { minValue = a[i]; minPos = i; } } Swap(________________); } /* 函数功能:两整数值互换 */ void Swap(int *x, int *y) { int ________; temp = *x; _________; *y = temp; }
A、第41行: int a[] 第49行: a[i] 第50行: i 第58行: &a[maxPos], &a[minPos] 第64行: temp 第66行: *x = *y
B、第41行: int a 第49行: a[i] 第50行: i 第58行: a[maxPos], a[minPos] 第64行: temp 第66行: *x = *y
C、第41行: int a[] 第49行: a[0] 第50行: 0 第58行: &a[maxPos], &a[minPos] 第64行: *temp 第66行: x = y
D、第41行: int a[] 第49行: a[n-1] 第50行: n-1 第58行: *a[maxPos], *a[minPos] 第64行: &temp 第66行: x = y
第7题
设计一个出题器程序,题目是100以内的加减法: 数据是100以内的正整数 ,由计算机随机出数,要求计算结果也在0--100之间(包括0和100); 程序启动后,用户可以无限次选择出题,直到用户选择“结束应用”; 程序默认加减法运算随机出现,也可以由用户选择加法或减法 ; 每次出题数量默认是10个 ; 每次显示1题,完成后显示对错,并给出答案,然后显示下一题; 出题时程序要预先判断计算机随机产生的数据其计算结果是否在0--100之间,不符合条件的题目由程序放弃,只显示符合条件的题目; 有关产生随机数的内容,请学习下面的程序。 -------------------------------------------------------------- //以下程序的功能是随机输出5个10以内的整数 #include <stdio.h> #include <stdlib.h> #include <time.h> main() { int i; srand(time(NULL)); //由时间函数产生随机数的种子 for (i = 1; i <=5; i++) printf("%d ", rand( )%11); rand() 函数产生随机数 }>
第8题
第9题
以下程序,数组a中存放一个递增序列,输入一个整数x 并将它插入到数组a中,使之仍为一个递增序列,请在划线处填空。整数,已经按照从小到大顺序排列好,现在另外给一个整数x,以下insert函数的功能是将x插入到数组a中,并使数组a仍然有序。 请将3个空白位置的答案分3行写出来,并提交。 #include <stdio.h> int main() { Int a[10]={1,3,5,7,9,11,13,15,17,19}; Int x, n, i, p; n=10; scanf(“%d”, &x); p = ; for(i=0;i<10;i++) 确定新元素位置p { if(x a[i]) p="i;" } for(i="n-1;i">=p; i--) a[i+1] = a[i]; //依次后移 // 插入新元素 for(i=0;i<=n;i++) printf("%5d" , a[i]); printf("\n");>
第10题
一个正整数如果恰好等于它的除自身外的因数之和,这个数称为“完数”。例如,6的因数有1、2、3,且6=1+2+3,因此6是“完数”。 编写判别完数的函数wanshu(int x):功能判断x是否为完数,如果是,则返回1,不是,则返回0。 编写main()中让x从1循环至1000,并调wanshu函数,如果返回值为1,则输出该数。 请完善下面的程序:(有3个空,答案一行写一个,不要添加多余的空格) #include <stdio.h> int wanshu(int x) { int i,r=0; for(i=1;i <x;i++) { if ( ) r="r+i;" 将因数累加进r中 } (r="=x)" 判断x是否是完数 return 1; else ; int main() i; for (i="1;i<=1000;i++)" printf("%d是完数\n",i); 0;>
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!