在printf函数中用来输出十六制无符号的格式字符是 ()A.d格式符B.x格式符C.u格式符D.o格式符
在printf函数中用来输出十六制无符号的格式字符是 ()
A.d格式符
B.x格式符
C.u格式符
D.o格式符
在printf函数中用来输出十六制无符号的格式字符是 ()
A.d格式符
B.x格式符
C.u格式符
D.o格式符
请补充函数fun(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成—个无符号长整数,并且逆序输出。结果由函数返回。
例如,输入: 1 2 3 4 5 6,结果输出:6 5 4 3 2 1。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
include<string.h>
unsigned long fun(char *S)
{
unsigned long t=0;
int k;
int i=0;
i=strlen(S);
for(【 】;i>=0;i--)
{
k=【 】;
t=【 】;
}
return t;
}
main()
{
char str[8];
clrscr();
printf("Enter a string made up of'0'to
'9'digital character:\n");
gets(str);
printf("The string iS:%S\n",str);
if(strlen(str)>8)
printf("The string is too long!");
else
printf("The result:%lu\n",
fun(str));
}
在printf的格式字符中,e格式字符的作用是()。
A)以十六进制无符号形式输出整数
B)以带符号的十进制形式输出整数
C)以指数形式输出实数
D)以字符形式输出,且只输出一个字符
●试题二
阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:
#define MAXSIZE 32
typedef struct{
int *elem;/*栈的存储区*/
int max; /*栈的容量,即栈中最多能存放的元素个数*/
int top;/*栈顶指针*/
}Stack;
【代码】
int InitStack(Stack *S,int n)/*创建容量为n的空栈*/
{S->elem=(int*)malloc(n *sizeof(int));
if(S->elem==NULL)return-1;
S->max=n; (1) =0;return 0;
}
int Push (Stack *s,int item)/*将整数item压入栈顶*/
{if(S->top==S->max){printf(″Stack is full!\n″);return-1;}
(2) =item;return 0;
}
int StackEmpty(Stack S){return(! S.top)?1∶0;}/*判断栈是否为空*/
int Pop(Stack *S)/*栈顶元素出栈*/
{if(! S->top){printf(″Pop an empty stack!\n″);return -1;}
return (3) ;
}
void MultibaseOutput(long n,int B)
{int m;Stack S;
if(InitStack(&S,MAXSIZE)){printf(″Failure!\n″);return;}
do {
if(Push(&S, (4) )){printf(″Failure!\n″);return;}
n= (5) ;
}while(n !=0);
while(! StackEmpty(S)){/*输出B进制的数*/
m=Pop(& S);
if(m<10)printf(″%d″,m);/*小于10,输出数字*/
else printf(″%c″,m+55);/*大于或等于10,输出相应的字符*/
}
printf(″\n″);
}
数组xx[N]保存着一组4位无符号整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。
例如:当xx[8]={1111,2413,2321,2222,4245,3333,1414, 5335}时,bb[6]={1111,2321,2222,4245,3333,1414)。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio. h>
include<conio. h>
define N 1000
int fun (int xx [], int bb [], int num)
{
int i, n=0;
int g,b;
for (i=0; i<num; i++)
{
g=【 】;
b=xx [i]/100%10;
if (g==b)
【 】
}
return【 】;
}
main()
{
int xx [8] ={1111,2413, 2321, 2222, 4245,
3333,1414,5335 };
int yy[N];
int num=0, n=0, i=0;
num=8;
clrscr ();
printf ("*****original data ******\n ");
for (i=0; i<num; i++)
printf ("%u ",xx[i]);
printf ("\n\n\n");
n=fun (xx, yy, num);
printf ("\n yy= ");
for (i=0; i<n; i++)
printf ("%u ", yy [i]);
}
3.算法填空题 数组q[MAX]存储一个循环队,尾指针last用来指向当前队列中的尾元素,count用来记录队列中当前元素个数。 下面的程序用于模拟队操作全过程。 提示:当count=0时,表示队空;当count=MAX时,表示队满。 当队不空时,(last-count+1+MAX)%MAX即是队头位置。 #include <stdio.h> #define MAX 400 //x 进队函数 int addq(int q[], int &last, int &count, int x) { if (count == MAX) (1) ; last = (last + 1) % MAX; (2) ; (3) ; return 1; } //x 出队函数 int delq(int q[], int last, int &count, int &x) { int f; if (count == 0) return 0; f = (4) ; x = q[f]; count--; return 1; } //输出队列中所有元素的函数 void print(int q[], int last, int count) { int i, j; if ((5) ) { printf(" 当前队中没有元素! \n"); return; } printf(" 当前队中的元素为:\n"); i = (6) ; for (j = 1; (7) ; j++) { printf("%4d", q[i]); i = (i + 1) % MAX; } printf(" \n"); } //主函数 int main() { int q[MAX], (8) , count = 0, c, k, x; while (1) { printf(" 请输入操作码,1:进队;2.出队;3.显示队内容;0:结束 c= "); scanf(" %d", &c); if (c == 0) break; if (c == 1) { printf(" 请输人进队元素x:"); scanf("%d",&x); k = (9) ; if (k==0)printf("队已满,进队失败! \n" ); else printf("%d 已进队!\n" ,x); } else if(c == 2) { k = (10) ; if(k == 0)printf("队空,无元素出队! \n"); else printf("元素%d已从队中退出! \n" ,x); } else if(c == 3) print(q, last, count); else continue; } printf("程序结束\n" ); }
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!