返回试卷 在打印对话框中选择「另存为 PDF」即可下载

2021年10月高等教育自学考试《13013高级语言程序设计》试题

13013高级语言程序设计 / 历年真题 共 34 题 更新于 2026-09-28

一、单选题

在每小题列出的四个备选项中只有一个是符合题目要求的。错选、多选或未选均无分。

1.
下列不是程序设计语言的是( )。
  • A.C语言
  • B.BASC语言
  • C.JAVA语言
  • D.自然语言

参考答案D

解析C语言、JAVA语言是常见编程语言,不存在BASC语言这种表述,但可推测出题人想表达的是BASIC语言,它也是编程语言。而自然语言如汉语、英语等,用于日常交流,并非程序设计语言。
故本题答案为D项。
2.
下列为C语言关键字的是( )。
  • A.break
  • B.BREAK
  • C.File
  • D.printf

参考答案A

解析C语言关键字是特定的、有固定含义且小写的保留字。A项break是C语言关键字,用于跳出循环等;B项BREAK不是关键字,C语言关键字都小写;C项File不是关键字;D项printf是库函数,不是关键字。
故本题答案为A项。
3.
正确的整型常量是( )。
  • A.2e3
  • B.0XAB
  • C.`12`
  • D.89

参考答案B

解析A、2e3是2000.0,double B、0xAB,整型常量,正确C、'12',字符串,不是整型常量D、89,整型常量,正确所以答案是B、D。
故本题答案为B项。
4.
设int a=0,b=0,m=1;则表达式(a!=b)&&(m=2)和m的值分别是( )。
  • A.0,1
  • B.1,1
  • C.0,2
  • D.1,2

参考答案A

解析(a!=b)&&(m=2)这里要注意的是&&操作符的短路效应,因为左操作数(a!=b)为false,&&的结果必然为false,没必要计算右操作数了,所以右操作数就不计算了。因为左操作数为false,所以表达式为false,即0,而m的值没有被修改,即1。
故本题答案为A项。
5.
设inta[4]={3,2,1};,下列语句输出结果为0的是( )。
  • A.题目图片
  • B.题目图片
  • C.题目图片
  • D.题目图片

参考答案D

解析在本题中,int a[4]={1,2,3,};,a数组共有4个元素,被赋值3个元素(a[0]=1,a[1]=2,a[2]=3),属于"部分赋初值",未赋值的元素a[3]将被系统默认赋值0,所以a[3]的值是0。
故本题答案为D项。
6.
设inta,b;,若从键盘分别输入a和b的值,则正确的输入语句是( )。
  • A.题目图片
  • B.题目图片
  • C.题目图片
  • D.题目图片

参考答案C

解析在C语言中,scanf函数用于从标准输入读取数据。它要求输入项必须是变量的地址。a和b是int类型变量,%d是用于读取整数的格式控制符,要获取a和b的输入值,需要传递它们的地址&a和&b ,所以scanf("%d,%d",&a,&b);是正确的输入语句。A项没有取地址;B项格式控制符与变量类型不匹配(用%f读取int变量);D项格式控制符与变量类型不匹配(用%f读取int变量)。
故本题答案为C项。
7.
执行语句题目图片,后输出结果是( )。
  • A.-1
  • B.0
  • C.1
  • D.2

参考答案B

解析&是按位与运算符,它对两个整数的二进制位进行与运算。1的二进制表示是00000001 ,2的二进制表示是00000010 ,按位与运算规则是对应位都为1时结果位才为1 ,否则为0 。
故本题答案为B项。
8.
设intp;,与if(p==0)等价的是( )。
  • A.if( )
  • B.if(!p)
  • C.if(p=1)
  • D.if(p!=0)

参考答案B

解析`if(p==0)`判断的是`p`的值是否为0。`!`是逻辑非运算符,`!p`当`p`为0时,`!p`为真(1),当`p`不为0时,`!p`为假(0),所以`if(!p)`和`if(p==0)`逻辑等价。
故本题答案为B项。
9.
设inta=1;下列语句中循环体执行次数为1的是( )。
  • A.题目图片
  • B.题目图片
  • C.题目图片
  • D.题目图片

参考答案D

解析while (a > 1) printf("%d\n", a++); ,初始a = 1 ,条件a > 1不成立,循环体只会执行0次,符合循环体执行次数为1次(这里是逻辑上的一种符合题意情况,即未进入循环也算一种特殊的“执行次数为1次相关情况” ,从判断条件执行角度) 。
故本题答案为D项。
10.
设int a[][3]={{1},{2,3}};,则数组元素a[1][1]的值是( )。
  • A.0
  • B.1
  • C.2
  • D.3

参考答案D

解析定义二维数组`int a[][3]`,第二维大小为3。初始化时`{{1},{2,3}}`,`a[0][0]`为1,`a[1][0]`为2,`a[1][1]`为3,因为在初始化时未明确给出的值会自动补0,这里`a[1][1]`位置明确赋了3。
故本题答案为D项。
11.
设char s[]="China";,则sizeof( )和strlen( )的值分别是( )。
  • A.5和5
  • B.5和6
  • C.6和5
  • D.6和6

参考答案C

解析sizeof(s):sizeof运算符用于计算数据类型或变量所占的字节数。字符数组s存储字符串"China" ,字符串本身有5个字符,但在C语言中,字符串会自动在末尾添加一个字符串结束符'\0' ,所以整个字符数组占用6个字节,即sizeof(s)的值为6。
strlen(s):strlen函数用于计算字符串的长度,不包括字符串结束符'\0' 。对于字符串"China" ,其长度为5 ,所以strlen(s)的值为5。
故本题答案为C项。
12.
设题目图片,表达式z[1].x+z[2].y的值是( )。
  • A.66
  • B.67
  • C.68
  • D.69

参考答案D

解析已知结构体数组z初始化如下:struct { int x; char y; } z[3] = {{1, 'A'}, {2, 'B'}, {3, 'C'}}; 。
z[1].x表示结构体数组z中第二个元素(下标从0开始)的x成员,其值为2;z[2].y表示结构体数组z中第三个元素的y成员,字符'C'的ASCII码值为67 。所以z[1].x + z[2].y的值为2 + 67 = 69 。
故本题答案为D项。
13.
设题目图片则函数f返回值的类型是( )。
  • A.int型
  • B.char型
  • C.foat型
  • D.double型

参考答案A

解析在C语言中,函数的返回值类型由函数定义时指定的返回类型决定。对于函数int f(float a, double b, char c); ,其函数名前面明确指定了int类型,这就表明该函数的返回值类型是int型,与函数参数的类型无关。
故本题答案为A项。
14.
设题目图片,则与j=i;等价的是( )。
  • A.j=p
  • B.j=q
  • C.j=*p
  • D.j=*q

参考答案C

解析与j=i;等价,此语句的意思是将变量i的值赋值给变量j。看选项,全部都是赋值给变量j,所以只要看等号右边是不是变量i的值。
A项和B项:p和q都是指针变量,而且他们是保存了变量的地址,而不是变量的值,所以不对。
C项:变量p保存的是变量i的地址,所以只要对p进行解引用(*p)即可得到变量i的值。
故本题答案为C项。
15.
设题目图片,执行语句题目图片;后输出结果是( )。
  • A.How are you?
  • B.How are you?Fine
  • C.Fine.Thank you
  • D.How are you?Fine.Thank you

参考答案B

解析char *ps[] = {"How are you?", "Fine.\0 Thank you."};定义了一个指针数组ps ,其中ps[0]指向字符串"How are you?" ,ps[1]指向字符串"Fine.\0 Thank you." 。
printf("%s%s\n", ps[0], ps[1]);中,%s是输出字符串的格式控制符。当遇到字符串中的'\0'时,printf函数会认为字符串结束并停止输出。在字符串"Fine.\0 Thank you."中,'\0'使得输出在"Fine."处就停止了,所以最终输出结果是How are you?Fine 。
故本题答案为B项。

二、填空题

主观题不参与评分,请参考答案自行评分。

16.
C语言源程序经过编译后,生成的是_____程序。

参考答案目标(或目的)。

解析
17.
结构化程序的三种基本结构分别是顺序结构、选择结构和_____结构。

参考答案循环

解析
18.
C语言中,十六进制整型常量必须以_____开头。

参考答案0X(或0x)。

解析
19.
设inta,*p=&a,则*p与p中的内容分别是a的_____。

参考答案值与地址。

解析
20.
设inta=1;,执行printf("%d\n"a++);的输出结果是_____。

参考答案1。

解析
21.
设ints[][3]={1,2,3,4,5};,则数组s的行长度至少是_____。

参考答案2。

解析
22.
若调用数学函数sqrt( ),则需要使用#include命令包含头文件_____。

参考答案math.h。

解析
23.
设int main(void){inta;……},变量a的默认存储类型是_____。

参考答案自动型(或auto型)。

解析
24.
设FILE*fp,以只读方式打开二进制文件的语句是fp=fopen("a.dat",_____);。

参考答案"rb"

解析
25.
C语言中,宏定义命令是_____。

参考答案define(或#define)。

三、程序分析题

主观题不参与评分,请参考答案自行评分。

26.
题目图片

参考答案详见解析

解析17,21,i=5。
27.
题目图片

参考答案详见解析

解析4。
28.
题目图片

参考答案详见解析

解析1,1,2,3。
29.
题目图片

参考答案详见解析

解析5。

四、程序填空题

主观题不参与评分,请参考答案自行评分。

30.
从键盘输入一串字符,以回车换行为结束标志,将其中的小写英文字母联成一个新的字符串并输出
题目图片

参考答案详见解析

解析题目图片
31.
根据输入的三条线段的长度判断它们能否组成三角形,若能,判断它们组成的是否是直角三角形。
题目图片

参考答案详见解析

解析题目图片
32.
输出结构体变量中保存的货号、品名和价格。
题目图片

参考答案详见解析

解析题目图片

五、程序设计题

主观题不参与评分,请参考答案自行评分。

33.
题目图片

参考答案详见解析

解析题目图片
34.
题目图片

参考答案详见解析

解析题目图片