题目
第1题
阅读以下程序段,在实模式存储管理方案中,gvCh存放在(36)中;main函数编译后的代码存入在(37)中;指针p存放在(38)中。
#include<malloc. h>
unsigned char gvCh;
unsigned short gvShort
unsigned int gvInt=0x12345678
unsigned long gvLong=0x23456789;
ovid main(void)
{ unsigned char array[10], *p;
p=malloc(10 * sizeof(char))
while(1)
}
A..text段
B..data段
C..bss段
D.堆空间
第2题
阅读下面程序段,则执行后输出的结果是
#include "stdio.h"
main()
{ char fun(char,int);
char a=′A′;
int b=13;
a=fun(a,b);
putchar(a);}
char fun(char a,int b)
{char k;
k=a+b;
return k;}
A.A
B.M
C.N
D.L
第3题
阅读下面程序段,则执行后输出的结果是 #include"stdio.h" main() { char fun(char,int); char a='A'; int b=13; a=fun(a,b); putchar(a);} char fun(char a,int b) { char k; k=a+b; return k;}
A.A
B.M
C.N
D.L
第4题
阅读以下说明,回答问题1至问题3,将答案填入答题纸对应栏内。
【说明】
在某嵌入式处理器上,编写以下两段秸序(编译选项中,存储采用4字节对齐方式)。
程序段1:
struct studentl {
char name [10] ;
long sno;
char sex;
float score [4] ;
*pl, al, bl;
程序段2:
union student2 {
char name [10] ;
long sno;
char sex,
float score [4] ;
*p2, a2, b2;
汉诺塔问题说明:有n个盘子在A处,盘子从小到大,最上面的盘予最小,程序要
把这n个盘子从A处搬到C处,可以在E处暂存,但任何时候都不能出现大的盘子压
在小的盘子上面的情况。
下列是一段求解汉诺塔问题的C语言程序。
include <stdio . h>
void move (int n, char a, char c)
{
static int Step=l;
printf ("Step %2d: Disk %d %c..--> %c\n", Step, n, a, c) ;
Step++;
}
void Hanoi (int n, char a, char b, cnar c)
{
if (n>l)
{
Hanoi (n-l, a, c, b) ;
move (n, a. c) ;
Hanoi (n-l, b, a, c) ;
}
else move (n,a,c);
}
void main()
{
Hanoi(3, ’A’, 、B’, 、C ’);
}
【问题1】(3分)
C语言函数的一般格式为:
<函数类型> <函数名> (<参数列表>)
{
<函数体>;
}
简答下述问题,将答案填写在答题纸中对应栏目。
(l)<函数类型>的含义是什么?
(2)<参数列表>的含义是什么?
(3)C语言函数之间的参数如何传递?
【问题2] (6分)
回答问题,将答案填写在答题纸中对应栏目。
(1)sizeof(struct studentl)结果是多少
(2) sizeof(union student2)结果是多少
(3)变量a2在程序段2中定义,写出执亍以下语句后的输出结果。
strcpy (a2. name,¨zhangwei¨);
a2.sex=’f’;
printf ("%s¨, a2 .name);
【问题3](6分)
仔细阅读求解汉诺塔问题的C语言程序,完成其中(1)~(4)空白填空,将答案
填入答题纸的对应栏内。
运行结果为:
Step1:Disk l A---->C
Step 2: (l)
Step 3: Disk I C---->B
Step4: (2)
Step 5: (3)
Step 6: Disk 2 B---->C
Step 7: (4)
第5题
有以下程序段 main() { char a[7]="abcdef"; charb[4]="ABC"; strcpy(a,b) ; printf("%c",a[5]); } 程序段运行后的输出结果是()
A.a
B.\0
C.e
D.f
第6题
阅读以下说明和C语言代码,回答问题1至问题5,将解答填入答题纸的对应栏内。
[说明]
在实模式存储管理方案下,嵌入式系统的内存地址空间的布局一般可以分为五个段:代码段(text)、数据段(data)、bss段(bss)、堆(heap)和栈(stack)。
图16-4为一段例程。
1: include
2: unsigned char gvCh;
3: unsigned short gvShort;
4: unsigned int gvInt = 0x12345678;
5: unsigned long gvLong = 0x87654321;
6: void main(void)
7: {
8: unsigned char array[lO],*p;
9: p = malloc(lO*sizeof(char));
10: while (1);
代码段、数据段和bss段的大小是在什么时候确定的?
第7题
以下程序段的输出为() static char a[]="language",b[]="progratne"; char *ptr1,*ptr2; int k; ptr1=a;ptr2=b; for(k=0;k<7;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));
A.gae
B.ga
C.language
D.有语法错误
第8题
阅读以下程序 #includc<iostream.h> vold main() { Char line[10]; cin>>line; cout<<line<<endl; } 如运行时输入This is example.<CR>,则程序的输出结果是
A.This
B.This is
C.This is a
D.This is an example.
第9题
以下程序段的输出结果是 ______。 char ch[3][5]={“xxxx”,“yy”,“zz”}: cout<<ch[1];
A.“xxxx”
B.“yy”
C.“yyzz”
D.“zz”
第10题
阅读以下程序,写出程序运行后的输出结果是 ______。 #include<iostream.h> void main(){ char a[]={'H','e','r','1',‘o’,'\0'}; int i, j; i=sizeof(a)/sizeof(char); j=strlen(a) cout<<i<<' '<<j; }
A.6 6
B.5 6
C.1 5
D.6 5
为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!