表达式“B—INT(A+O.5)”的功能是A.讲变量A保留小数点后1位B.讲变量A四舍五入取整C.讲变量A保留小数
表达式“B—INT(A+O.5)”的功能是
A.讲变量A保留小数点后1位
B.讲变量A四舍五入取整
C.讲变量A保留小数点后5位
D.舍去变量A的小数部分
表达式“B—INT(A+O.5)”的功能是
A.讲变量A保留小数点后1位
B.讲变量A四舍五入取整
C.讲变量A保留小数点后5位
D.舍去变量A的小数部分
(29)表达式“B=INT(A+0.5)”的功能是
A)将变量A保留小数点后1位
B)将变量A四舍五入取整
C)将变量A保留小数点后5位
D)舍去变量A的小数部分
下列给定的程序中,函数fun()的功能是:求输入的两个数中较小的数。
例如:输入5 10,结果为rain is 5。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#include <stdio.h>
#include <conio.h>
int fun(int x, (1) )
{
int z;
z=x<y (2) x:y;
return(z);
}
main()
{
int a, b, c;
scanf("%d, %d\n", (3) );
c=fun(a, b);
printf("min is %d", c);
}
下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3, b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<conio.h>
include <stdio.h>
int fun(int *x,int y)
{
int t;
/***************found***************/
t=x;x=y;
/***************found***************/
return(y);
}
main()
{int a=3,b=8;
clrscr();
printf("%d %d\n",a, b);
b=fun(&a,b);
printf("%d %d\n" ,a,b);
}
请补充函数fun(),该函数的功能是:判断某一个年份是否为闰年。
例如,1900年不是闰年,2004是闰年。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
int fun(int n)
{
int flag=0;
if (n%4=0)
{
if (【 】)
flag=1;
}
if (【 】)
flag=1;
return【 】;
}
main()
{
int year;
clrscr();
printf("Input the year:");
scanf("%d", &year);
if (fun(year))
printf("%d is a leap year. \n", year);
else
printf("%d is not a leap year.\n",
year);
}
请补充函数fun(),该函数的功能求能整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。
例如当x=20时,依次输出:20 10 4 2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
void fun(int k,int bb[ ])
{
int i;
int j=0;
for(【l】;i<=k;i++)
{
if(【 】)
bb[i++]=i;
}
printf("\n\n");
for(i=【 】;i>=0;i--)
printf(“%d”,bb[i]);
}
main()
{
int k=1;
int bb[100];
clrscr();
printf(“\nPlease input X=”);
scanf(“%d”,&k);
fun(k,bb);
}
请补充函数proc,该函数的功能是计算下面公式SN的值:
SN=1+1/3十4/5+...+2N-1/SN-1
例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdlib.h>
include<conio.h>
include<stdio.h>
double proc(int n)
{
double s=1.0,sl=0.0;
int k;
for(【1】;k<=n;k++)
{
s1=S;
【2】
}
return【3】;
}
void main
{
int k=0:
double sum;
system("CLS");
printf("\nPlease input N=");
scanf("%d",&k);
sum=proc(k);
printf("\nS=%If",sum);
}
请补充main函数,该函数的功能是:从键盘输入3个整数,然后找出最大的数并输出。
例如,输入:12,45,43,最大值为45。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
main()
{
int a, b, c, max;
clrscr();
printf("\nlnput three numbers:\n");
scanf("%d,%d,%d",&a,&b,&c);
printf("The three numbers are:%d,
%d,%d\n",a,b,c);
if(a>b)
【 】;
else
【 】;
if(max<c)
【 】;
printf("max=%d\n",max);
}
试题四(共 15 分)
阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式
“46+5*(120-37)”的后缀表达式形式为“46 5 120 37 - * +” 。
计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37 - * +”的计算过程为:
a. 依次将 46、5、120、37 压入栈中;
b. 遇到“-”,取出 37、120,计算 120–37,得 83,将其压入栈中;
c. 遇到“*”,取出 83、5,计算 5*83,得 415,将其压入栈中;
d. 遇到“+”,取出 415、46,计算 46+415,得 461,将其压入栈中;
e. 表达式结束,则计算过程完成。
函数 computing(char expr[],int *result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数 result 返回该值。函数的返回值为-1/0 分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。
函数 computing 中所用栈的基本操作的函数原型说明如下:
void InitStack(STACK *s):初始化栈。
void Push(STACK *s, int e): 将一个整数压栈,栈中元素数目增 1。
void Pop(STACK *s):栈顶元素出栈,栈中元素数目减 1。
int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。
int IsEmpty(STACK s):若s 是空栈,则返回1 否则返回 0。
[C 函数]
int computing(char expr[], int *result)
{
STACK s; int tnum, a,b; char *ptr;
InitStack(&s);
ptr = expr; /*字符指针指向后缀表达式串的第一个字符*/
while (*ptr!='\0') {
if (*ptr==' ') { /*当前字符是空格*/
(1) ; /*字符指针指向下一字符*/
continue;
}
else
if (isdigit(*ptr)) {
/*当前字符是数字,则将该数字开始的数字串转换为数值*/
tnum = (2) ;
while (*ptr>=’0’ && *ptr <=’9’) {
tnum = tnum * 10 + (3) ;
ptr++;
}
Push((4) );
}
else /*当前字符是运算符或其他符号*/
if (*ptr=='+'||*ptr=='-'||*ptr =='*'||*ptr =='/'){
if (!IsEmpty(s)) {
a = Top(s); Pop(&s); /*取运算符的第二个运算数*/
if (!IsEmpty(s)) {
b = Top(s); Pop(&s); /*取运算符的第一个运算数*/
}
else return -1;
}
else return -1;
switch (*ptr) {
case '+': Push(&s,b+a); break;
case '-': Push(&s,b-a); break;
case '*': Push(&s,b*a); break;
case '/': Push(&s,b/a); break;
}
}
else
return -1;
ptr++; /*字符指针指向下一字符*/
} /* while */
if (IsEmpty(s)) return -1;
else {
(5) = Top(s); Pop(&s); /*取运算结果*/
if (!IsEmpty(s)) return -1;
return 0;
}
}
请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组aIf中。注意:不区分大小写,不能使用字符串库函数。
例如,输入: “A=abc+5*c”,结果为:a=2, b=l,c=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数run的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
define N 100
void fun(char *tt,int alf[])
{
int i
char *p=tt;
for(i=0;i<26;i++)
【 】;
while(*p)
{
if(*p>='A'&&*p<='z')
【 】;
if(*p>='a'&&*p<='Z')
alf[*p-'a']++;
【 】;
}
}
main()
{
char str[N];
char a='a';
int alf[26],k;
clrscr();
printf("\nPlease enter a char string:");
scanf("%S",str);
printf("\n**The original string**\n");
puts(str);
fun(str,alf);
printf("\n**The number of letter**\n");
for(k:0;k<26;k++)
{
if(k%5==0)
printf(“\n”);
printf(“%c=%d”,a+k,alf[k]);
}
printf(“\n”);
}