哈工大C语言笔试真题题库(含答案解析·完整版)_第1页
哈工大C语言笔试真题题库(含答案解析·完整版)_第2页
哈工大C语言笔试真题题库(含答案解析·完整版)_第3页
哈工大C语言笔试真题题库(含答案解析·完整版)_第4页
哈工大C语言笔试真题题库(含答案解析·完整版)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈工大C语言笔试真题题库(含答案解析·完整版)适用说明:适配哈尔滨工业大学C语言期末笔试、上机测试、课程补考、校内选拔、考研复试机试,完全贴合哈工大主流《C语言程序设计(苏小红)》教材命题风格,题型全覆盖、重难点精准对标。考试结构:选择题、判断题、程序填空题、程序阅读题、编程大题(满分100分)第一部分单项选择题(30题|哈工大高频必考)1.C语言程序的基本构成单位是()A.语句B.函数C.程序行D.源文件答案:B解析:C语言是函数式编程语言,程序由若干函数组成,函数是程序基本单位,main函数是程序入口。2.以下关于C语言标识符规则正确的是()A.可由数字、字母、下划线组成,可数字开头B.关键字可以自定义为标识符C.只能由字母、数字、下划线组成,不能以数字开头,关键字不可作为标识符D.标识符可包含空格答案:C解析:C语言标识符命名硬性规则:字母/下划线开头,由字母、数字、下划线构成;系统关键字禁止用作自定义标识符。3.下列不属于C语言基本数据类型的是()A.intB.floatC.charD.struct答案:D解析:int、float、char为三大基本数据类型;struct是结构体构造类型,不属于基本类型。4.C语言程序执行的入口是()A.程序第一行代码B.第一个自定义函数C.main()函数D.头文件函数答案:C解析:无论代码顺序如何,C程序固定从main函数开始执行。5.以下运算符中,优先级最高的是()A.++B.+C.=D.>答案:A解析:自增自减运算符优先级高于算术、关系、赋值运算符。6.C语言中取模运算符是()A./B.%C.*D.\答案:B解析:%为取模(求余)运算符,仅适用于整型数据;/为除法运算。7.合法的C语言常量是()A.078B.0x2fC.1.2e3.5D.'ab'答案:B解析:八进制数只能0-7,A错误;指数必须为整数,C错误;字符常量只能单个字符,D错误;0x开头为合法十六进制常量。8.若inta=5;执行a+=a-=a*a;后a的值为()A.-15B.-40C.0D.-20答案:B解析:赋值运算符从右向左运算:先算a*a=25,a-=25即a=5-25=-20,a+=-20即a=-20-20=-40。9.printf函数的返回值是()A.输出数据的值B.成功输出的字符个数C.无返回值D.随机数答案:B解析:printf执行成功返回输出字符总数(含换行、空格),失败返回负数。10.scanf函数的返回值是()A.输入数值B.成功赋值的变量个数C.输入字符数D.固定为0答案:B解析:scanf返回成功读取并赋值的数据个数,读取失败返回EOF。11.以下循环语句中,属于死循环的是()A.for(i=0;i<10;i++)B.while(0)C.while(1)D.do-while(0)答案:C解析:while(1)条件恒真,无限循环;while(0)、do-while(0)条件为假,不执行或仅执行一次。12.break语句的作用是()A.结束本次循环B.跳出当前循环或switch结构C.终止程序运行D.无作用答案:B解析:break跳出最近一层循环/switch;continue仅结束本次循环,进入下一次循环。13.continue语句的作用是()A.跳出循环B.结束本次循环,直接进入下一次循环C.终止程序D.暂停程序答案:B14.数组inta[5],数组最后一个元素下标是()A.5B.4C.0D.6答案:B解析:C语言数组下标从0开始,5个元素下标为0-4。15.以下关于数组说法正确的是()A.数组长度可以用变量定义B.数组元素下标可以越界C.数组名代表数组首地址D.数组可整体赋值答案:C解析:标准C语言数组长度必须是常量,不支持变量定义;数组禁止整体赋值、下标越界会引发未知错误,数组名是首元素地址。16.字符串"hbit"在内存中占用字节数为()A.4B.5C.6D.3答案:B解析:字符串自动隐藏结束符'\0',4个有效字符+1个结束符,共5字节。17.用于动态分配内存的函数是()A.mallocB.freeC.exitD.return答案:A解析:malloc动态开辟堆内存;free用于释放动态内存。18.指针变量存放的是()A.变量的值B.变量的内存地址C.随机地址D.字符串答案:B解析:指针本质是地址变量,专门存储内存地址。19.函数形参int*p,传递的是()A.变量值B.变量地址C.数组全部内容D.常量答案:B解析:指针传参为地址传递,可以修改实参原始数据。20.预处理指令#defineN10说法正确的是()A.N是变量B.编译前所有N替换为10C.可在程序中修改N值D.占用内存空间答案:B解析:宏定义是简单文本替换,无内存占用、不可赋值修改。第二部分判断题(20题|哈工大易混易错)1.C语言区分大小写,A和a是两个不同标识符。()答案:正确解析:C语言为大小写敏感语言。2.变量必须先定义、后使用。()答案:正确3.数组下标可以为负数。()答案:错误解析:合法数组下标为非负整数,负数下标属于越界错误。4.break语句可以用于if语句中跳出判断。()答案:错误解析:break仅用于循环、switch结构,不能单独作用于if。5.字符串必须以'\0'作为结束标志。()答案:正确6.宏定义语句末尾需要加分号。()答案:错误解析:宏定义禁止加分号,会导致编译语法错误。7.指针变量可以加减整数进行移动。()答案:正确8.函数可以嵌套定义,不可以嵌套调用。()答案:错误解析:C语言禁止函数嵌套定义,允许嵌套调用。第三部分程序阅读题(10题|哈工大期末压轴)1.写出程序运行结果PlainText

#include<stdio.h>

intmain()

{

inti=43;

intn=printf("%d\n",i);

printf("%d",n);

return0;

}运行结果:43

3解析:printf输出"43\n"共3个字符,返回值n=3。2.写出程序运行结果PlainText

#include<stdio.h>

intmain()

{

inta=1,b=2,c=3;

if(a>b)

c=a;

a=b;

b=c;

printf("%d%d%d",a,b,c);

return0;

}答案:233解析:a>b不成立,不执行c=a;顺序执行a=b=2,b=c=3,c保持3。3.循环输出结果PlainText

#include<stdio.h>

intmain()

{

ints=0,i;

for(i=1;i<=5;i++)

{

if(i%2==0)continue;

s+=i;

}

printf("%d",s);

return0;

}答案:9解析:跳过偶数,累加1+3+5=9。第四部分程序填空题(3题|上机必考)1.实现1~100累加求和PlainText

#include<stdio.h>

intmain()

{

inti,sum=0;

for(i=1;___;i++)

{

sum=sum+i;

}

printf("%d",sum);

return0;

}答案:i<=1002.判断奇偶PlainText

if(___)

printf("偶数");

else

printf("奇数");答案:n%2==0第五部分编程大题(5题|哈工大期末/上机真题)真题1:分数比较(哈工大课程原题)题目:输入两个分数(分子、分母),通分后比较大小,输出谁大谁小或相等。PlainText

#include<stdio.h>

intmain()

{

inta,b,c,d;

printf("输入第一个分数:分子分母:");

scanf("%d%d",&a,&b);

printf("输入第二个分数:分子分母:");

scanf("%d%d",&c,&d);

//交叉相乘通分比较,避免浮点误差

if(a*d>c*b)

printf("%d/%d>%d/%d\n",a,b,c,d);

elseif(a*d<c*b)

printf("%d/%d<%d/%d\n",a,b,c,d);

else

printf("%d/%d=%d/%d\n",a,b,c,d);

return0;

}真题2:求斐波那契数列前n项PlainText

#include<stdio.h>

intmain()

{

intn,i;

intf1=1,f2=1,f3;

scanf("%d",&n);

printf("%d%d",f1,f2);

for(i=3;i<=n;i++)

{

f3=f1+f2;

printf("%d",f3);

f1=f2;

f2=f3;

}

return0;

}真题3:反转字符串PlainText

#include<stdio.h>

#include<string.h>

intmain()

{

charstr[100];

inti,len;

chart;

gets(str);

len=strlen(str);

for(i=0;i<len/2;i++)

{

t=str[i];

str[i]=str[len-1-i];

str[len-1-i]=t;

}

puts(str);

return0;

}真题4:数组最大值最小值查找PlainText

#include<stdio.h>

intmain()

{

inta[10],i,max,min;

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

scanf("%d",&a[i]);

max=min=a[0];

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

{

if(a[i]>max)max=a[i];

if(a[i]<min)min=a[i];

}

printf("max=%d,min=%d",max,min);

return0;

}真题5:素数判断PlainText

#include<stdio.h>

intmain()

{

intn,i,flag=1;

scanf("%d",&n);

if(n<2)flag=0;

for(i=2;i*i<=n;i++)

{

if(n%i==0)

{

flag=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论