高级语言程序设计

发布 2021-04-24 15:34:28 阅读 9520

(总分:100.00,做题时间:90分钟)

一、}单项选择题}(总题数:15,分数:30.00)

1.若有以下说明,则在seanf函数调用语句中对结构体变量成员引用方式不正确的是( )struct pub pub[5],*p;

分数:2.00)

%s",pup[0].nam;

%d",&pup[0].ag;

%d",&p->se;

%d",*ag;√

解析:[解析] "的优先级远高于"&"和"*"

2.设有以下定义 int a[4][3]=,int *ptr[3]=,p=a[0]; 则以下能正确表达数组元素a[1][2]的表达式是( )

分数:2.00)

a.*(ptr+1)[2])

b.*(p+5))

c.*(ptr+1)+4)√

d.*(p+1)+2)

解析:[解析] "int *ptr[3]="定义了指针数组ptr并给这个数组的第一个元素赋值"a[0]",ptr+1)+4)"的含义是:取指针数组ptr的第一个元素值再加5所得的指针量指向的内存单元的值。

3.不能把字符串"hello!"符给数组b的语句是( )

分数:2.00)

b[10]=;

b[10];b="hello!";

b[10];strcpy(b,"hello!")

b[10]="hello!";

解析:[解析] "char b[10];b="hello!";语句中,b是数组的首地址而不是变量,故字符串"hello!

"的首地址不能赋给b,也就不能完成把字符串"hello!"赋给数组b的任务。

4.若x、y是int型变量,则执行以下语句后的x值是( )#include<stdio.h> main() x-=3; }

分数:2.00)

a.3√b.6

c.7d.10

解析:[解析] #include<stdio.h> main()

5.已知有以下定义(假定现有计算机字长为16) int a=0x48,b=0xf0; a^b的值为( )

分数:2.00)

a.184√

b.183c.290

d.287解析:[解析] 因计算机字长为16,故a的二进制表示是0000000001001000,b的二进制表示是0000000011110000,进行按位加(a^b)所得的结果是:

0000000010111000(十进制值为184)。

6.若有以下定义: char s[20]==programming",*ps=s; 则不能代表字符o的表达式是( )

分数:2.00)

a.*(ps+2)

d.*ps+=2√

解析:[解析]"*的运算优先级高于"+-故*ps+=2相当于*ps='p'+2。

7.若有说明语句:int i,;则以下关于x、*x、x[0]、&x[0][0]的描述正确的是( )

分数:2.00)

均表示元素x[0][0]的地址。

b.只有x、*x表示元素x[0][0]的地址。

c.只有x[0]、&xl0]表示元素x[0][0]的地址√

d.只有&x[0][0]表示元素的地址。

解析:[解析] x[0]表示数组x[3][4]第二行的首地址,也是数组元素[0][0]的地址。

8.以下函数的功能是( )abc(ps) char *ps;

分数:2.00)

a.比较两个字符串的大小。

b.求字符串的长度√

c.将字符串ps复制到p中。

d.以上三种说法都不对。

解析:[解析] abc(ps)char *ps;

9.执行以下程序段后s的值为( )int a=int s=0; int k; for(k=0;k<8;k+=2) s+=*a+k):

分数:2.00)

a.17b.22√

c.27d.32

解析:[解析] int a=int s=0: int k; for(k=0;k<8;k+=2)/*步进值为2,k=8时循环终止*/ s+=*a+k);/s的值是a[0]、a[2]、a[4]、a[6]的和*/

语言的基本数据类型包括( )a.字符型和数值型 b.字符型和逻辑型 c.整型和实型 d.指针型和数据型。

分数:2.00)a.√b.

c.d.

解析:11.下列选项中合法的数组定义是( )

分数:2.00)

a=string";√

a[5]=;

a="sting";a=解析:

12.执行下列语句后b的值为( )int a,b,c,l=4,m=6,n=8; int *p1=&1,*p2=&m,*p3; a=p1==&1;b=3*(-p1)/(p2)+7; c=*(p3=&n)=*p1*(*p2);

分数:2.00)

a.4b.5√

c.7d.8

解析:[解析]决定b的值的是语句"b=3*(-p1)/(p2)+7;"根据定义将其转换成变量算术运算式是"b=3*(-1)/m+7=3*(-4)/6+7=5"。

13.若有下列类型说明语句: char w;int x;float y;double z; 则表达式w*x+z-y的结果的数据类型是( )

分数:2.00)

解析:14.下列关于c语言的描述正确的是( )

分数:2.00)

语言是面向硬件的高级语言。

语言是面一种面向对象的程序设计语言。

语言是一种结构化程序设计语言√

语言的前身是汇编语言。

解析:15.下列程序正确的运行结果为( )#include<stdio.h> main()

分数:2.00)

a.12 21√

b.21 12

c.12 3

d.3 12

解析:[解析] #include<stdio.h> main() 定义一个指向整型数据的指针的数组,并以数组a的前5个元素的地址为初值*/ for(i=0;i<5;i++)a[i]=a[i]/2+a[i];/数组a的元素分别加上各自现有值的1/2并保存在该元素中*/ printf("%d/n",*ptr+2)))输出的是指针数组ptr的第三个元素所指向的数组a的元素值*/ printf("%d/n",*ptr));输出的是指针数组ptr的第一个元素所指向的数组a的元素值*/

二、}填空题}(总题数:10,分数:20.00)

16.与标准输出设备所对应的文件型指针名为 1。

分数:2.00)

填空项1正确答案:stdout)

解析:17.将字符串写入文件时,不写入文件的字符串结束标志是 1。

分数:2.00)

填空项1正确答案:'/0')

解析:18.将字符转换成ascⅱ**值的函数是 1。

分数:2.00)

填空项1正确答案:toascii

解析:19.文件包含命令是以 1为开头的编译预处理命令。

分数:2.00)

填空项1正确答案:#include)

解析:20. 1是c语言中唯一的一个三目运算符,它是由两个符号组成。

分数:2.00)

填空项1正确答案:条件运算符)

解析:21.数组int arry[5][9];的第二维下标的最大值是 1。

分数:2.00)

填空项1正确答案:8)

解析:22.在进行程序清单的编译时, 1是先于编译进行的。

分数:2.00)

填空项1正确答案:宏替换)

解析:23.已知char str=abcd";,则语句printf("%d",strlen(str));的输出是 1。

分数:2.00)

填空项1正确答案:4)

解析:24.设int a;float b;char c;long d;double e;unsigned u;,则表达式a+c/b-d*e+u值的类型是 1。

分数:2.00)

填空项1正确答案:double)

高级语言程序设计

总分 100.00,做题时间 90分钟 一 单项选择题 总题数 15,分数 30.00 语言早期规定建立文件缓冲区采用的形式是 分数 2.00 a.缓冲文件系统。b.非缓冲文件系统。c.分页文件系统。解析 2.以下是对二维数组的正确说明的是 分数 2.00 a 3,4 a 1 4 a 3 4 解析 ...

高级语言程序设计

班级学号 021110212 姓名 卢荼 同组同学。成绩。时间 2011.6 28 题目 班级档案管理系统。一 设计任务与目标。对一个有n个学生的班级,通过该系统实现对该班级学生的基本信息进行录入 显示 修改 删除 保存等操作的管理。功能要求 1 本系统采用一个包含n个数据的结构体数组,每个数据的结...

高级语言程序设计

36.下面程序的运行结果是。include void main int a 2,b 1,c 2 if aif b 0 c 0 else c printf c d c 参 考察知识点 if语句的嵌套。运行结果 c 2 下面程序的运行结果是。include void main int a,b,c a 3...