首页 > 软考
题目内容 (请给出正确答案)
[主观题]

试题四 阅读以下说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 函数Mult

试题四

阅读以下说明和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;

[C代码]

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");

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“试题四 阅读以下说明和C代码,将应填入 (n) 处的字句写在…”相关的问题
第1题
●试题四 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数Qui

●试题四

阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[],int s,int t)

{int i=s,j=t+1,temp;

int x=A[s];

do{

do i++;while (1) ;

do j--;while(A[j]>x);

if(i<j){temp=A[i]; (2) ; (3) ;}

}while(i<j);

A[a]=A[j];A[j]=x;

if(s<i-1) (4) ;

if(j+1<t) (5) ;

}

点击查看答案
第2题
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 将一正整数

●试题四

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。

在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列 {6,8,9,1,2,5,4,7,3}

经重排后成为{3,4,5,2,1,6,8,9,7}

【函数】

#include<stdio.h>

#include<conio.h>

void jsValue(int a[10][9])

{int i,j,k,n,temp;

int b[9];

for(i=0;i<10;i++)

{temp=a[i][0];

k=8;n=0;

for(j=8;j=0;j--)

{if(temp<a[i][j]) (1) =a[i][j];

if(temp>a[i][j]) (2) =a[i][j];

if(temp=a[i][j]) (3) =temp;

}

for(j=0;j<9;j++)a[i][j]=b[j];

}

}

void main()

{

int a[10][9]={{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},

{8,2,1,9,3,5,4,6,7},{3,5,1,2,9,8,6,7,4},

{4,7,8,9,1,2,5,3,6},{4,7,3,5,1,2,6,8,9},

{9,1,3,5,8,6,2,4,7},{2,6,1,9,8,3,5,7,4},

{5,3,7,9,1,8,2,6,4},{7,1,3,2,5,8,9,4,6}

};

int i,j;

(4) ;

for(i=0;i<10;i++){

for(j=0;j<9;j++){

printf("%d",a[i][j]);

if((5) )printf(",");

}

printf("\n");

}

getch();

}

点击查看答案
第3题
试题四(共20 分) 阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。

试题四(共20 分)

阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。

【说明】

在实时系统中, 许多控制软件需要将数据封装到一个数据结构中, 以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用 C 语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析图 4-1所示的 C 语言代码,回答以下问题。

试题四(共20 分) 阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对

【问题 1】 (8 分)

如果处理机按 16 位以大端方式(big_endian)编址,请在图 4-2 所示的存储器图表中填入 myRadarData 数据的存储内容(十六进制表示)。

试题四(共20 分) 阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对

【问题 2】 (8分)

在图 4-1 所示的程序中,第 22 行的语句执行完成后,下列语句的结果是多少?请将应填入(n)处的内容写在答题纸的对应栏中。

q->X = (1)

q->Y = (2)

q->Z = (3)

q->U = (4)

若再执行一次q++,则下列语句的结果又是多少?请将应填入(n)处的内容写在答题纸的对应栏中。

q->X = (5)

q->Y = (6)

q->Z = (7)

q->U = (8)

【问题 3】 (4 分)

内存空间常划分为代码段(text) 、数据段(data) 、bss 段(bss) 、堆区(heap)和栈区(stack) ,那么图 4-1 中 myRadarData 数组的存储空间应分配在哪个段中?指针变量 p、q 应分配在哪个段中?

点击查看答案
第4题
●试题八 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 以下程

●试题八

阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

【程序】

#include<stdio.h>

main()

{FILE*fp;

charstr[100];inti=0;

if((fp=fopen("text.txt" (1) ))==NULL)

{printf("can't open this file.\n");exit(0);}

printf("input astring:\n");gest(str);

while(str[i])

{if(str[i]>=′a′ && str[i]<=′z′)

str[i]= (2) ;

fputc(str[i], (3) );

i++;

}

fclose(fp);

fp=fopen("test.txt", (4) );

fgets(str,100,fp);

printf("%s\n",str);

(5) ;

}

点击查看答案
第5题
试题六(共 15 分) 阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题六(共 15 分)

阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

C++标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空间为 std。vector模板类的部分方法说明如下表所示:

试题六(共 15 分) 阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

[C++代码]

include <iostream>

include <vector>

using namespace (1) ;

typedef vector< (2) > INTVECTOR;

const int ARRAY_SIZE = 6;

void ShowVector(INTVECTOR &theVector);

int main(){

INTVECTOR theVector;

// 初始化 theVector,将 theVector的元素依次设置为 0 至 5

for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)

theVector.push_back((3) );

ShowVector(theVector); // 依次输出 theVector中的元素

theVector.erase(theVector.begin() + 3);

ShowVector(theVector);

}

void ShowVector(INTVECTOR &theVector) {

if (theVector.empty()) {

cout << "theVector is empty." << endl; return;

}

INTVECTOR::iterator (4) ;

for (theIterator = theVector.begin(); theIterator != theVector.end(); theIterator++){

cout << *theIterator;

if (theIterator != theVector.end()-1) cout << ", ";

}

cout << endl;

}

该程序运行后的输出结果为:

0, 1, 2, 3, 4, 5

(5)

点击查看答案
第6题
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 该程序的功

●试题四

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。

例如:原文:You He Me

I am a student.

结果:Me He You

student a am I

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

【函数】

#include<string.h>

#include<conio.h>

#include<ctype.h>

#include<stdio.h>

char xx[50][80];

int maxline=0;/*文章的总行数*/

int ReaaDat(void);

void WriteDat(void);

void StrOL(void)

{

char*pl,*p2,t[80];

int i;

for(i=0;i<maxline;i++)

{p1=xx[i];t[0]=0;

while(*p1)p1++;

while(p1>=xx[i])

{while(!isalpha(*p1)&&p1!=xx[i])p1--;

p2=p1;

while((1) )p1--;

if(p1==xx[i])

if(isalpha(*p1))p1--;

else if(!isalpha(*(p1+1)))break;

p2++;

(2) ;

strcat(t,p1+1);

strcat(t," ");

}

strcpy(xx[i],t);

}

}

void main()

{

if((3) ){

printf("数据文件in.dat不能打开!\n\007");

return;

}

StrOL();

writeDat();

getch();

}

int ReadDat(void)

{

FILE*fp;

int i=0;

char*p;

if((fp=fopen("e:\\a\\in.dat","r"))==NULL)return 1;

while(fgets(xx[i],80,fp)!=NULL){

p=strchr(xx[i],′\n′);

if(p)*p=0;

i++;

}

maxline= (4)

fclose(fp);

return 0;

}

void WriteDat(void)

{

FILE*fp;

int i;

fp=fopen("e:\\a\\out6.dat","w");

for(i=0;i< (5) ;i++){

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

点击查看答案
第7题
试题四(共15 分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 在Win

试题四(共15 分)

阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。

【说明】

在Windows Server 2003系统中,用户分为本地用户和域用户,本地用户的安全策略用“本地安全策略”设置,域用户的安全策略通过活动目录管理。

【问题1】(2 分)

在“本地安全设置”中启用了“密码必须符合复杂性要求”功能,如图 4-1 所示,则用户“ABC”可以采用的密码是 (1) 。

试题四(共15 分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】

(1)备选答案:

A.ABC007 B.deE#3 C.Test123 D.adsjfs

点击查看答案
第8题
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 从文件IN.DA

●试题四

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件OUT5.DAT中。

例如:原文:You can create an index on any field.

you have the correct record.

结果:n any field.Yu can create an index

rd.yu have the crrect rec

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

【函数】

#include "stdio.h"

#include "string.h"

#include "conio.h"

#include "ctype.h"

#include "mem.h"

unsigned char xx[50][80];

int maxline=0;

int readdat(void);

void writedat(void);

/*将题目要求的字符串中所有小写字母o左边的字符串内容移到该串的右边存放,即

将串中"最后"一个字母o左右两侧的内容互换*/

void StrOR(void)

{

inti;

char*p1,*p2,t[80];

for(i=0;i<maxline;i++)

{ t[0]=′/0′;

p2=xx[i];

while(*p2)/*找到最后一个′o′*/

{if((1) )p1=p2;

p2++;

}

strcat(t,p1+1);

*p1=′\\0′;

strcat(t,xx[i]);

p1=xx[i];

p2=t;

while(*p2)/*删去字符′o′*/

{if((2) ) (3) =*p2;

p2++;

}

(4) ;

}

}

void main()

{

clrscr();

if(readdat())

{printf("Can't open the file IN.DAT!\\n");

return;

}

StrOR();

writedat();

}

int readdat(void)

{

FILE*fp;

int i=0;

char*p;

if((fp=fopen("in.dat","r"))==NULL)

return 1;

while(fgets(xx[i],80,fp)!=NULL)

{p=strchr(xx[i],′\\n′);

if(p)

*p=0;

i++;

}

maxline= (5) ;

fclose(fp);

return 0;

}

void writedat(void)

{FILE*fp;

int i;

fp=fopen("in.dat","w");

for(i=0;i<maxline;i++)

{printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

}

}

点击查看答案
第9题
●试题八 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 【说明】 下面的程序是从命令行

●试题八

阅读以下说明和Java代码,将解答写入答题纸的对应栏内。

【说明】

下面的程序是从命令行输入3个数传递到public static void main(String args[])方法中(如 java IsTriangle 3 4 5),并判断这3个数能否构成三角形的3条边,并显示相应的结果。请在程序的每条横线处填入适当的语句,使程序的功能完整。

注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。

public class IsTriangle{

public static void main(String args[]){

int a[]=new (1) [args. (2) ];

for(int i=0;i<3; (3) )

{

a[i]= (4)

}

if((5) )

System.out.println(a[0]+ ","+a[1]+ ","+a[2]"能构成三角形的3条边");

else

System.out.println(a[0]+ ","+a[1]+ ","+a[2] "不能构成三角形的3条边");

}

}

点击查看答案
第10题
●试题七 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 【说明】 下面的程序的功能是利

●试题七

阅读以下说明和Java代码,将解答写入答题纸的对应栏内。

【说明】

下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果:100,如图3。

●试题七 阅读以下说明和Java代码,将解答写入答题纸的对应栏内。 【说明】 下面的程序的功能是利●

注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。

class ClassName (1) Runnable{

int n;

(2) {

try{

Threa

D.sleep(2000);

n=100;

}catch((3) e){}

}

public static void main(String[]args){

try{

ClassName a=new ClassName();

(4)

thread1. (5) ();

thread1.join();

int m=A.n;

System.out.println("m="+m);

}catch((3) e){}

}

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改