C语言基础测试题(含详细答案解析)_第1页
C语言基础测试题(含详细答案解析)_第2页
C语言基础测试题(含详细答案解析)_第3页
C语言基础测试题(含详细答案解析)_第4页
C语言基础测试题(含详细答案解析)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

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

文档简介

C语言基础测试题(含详细答案解析)适用人群:C语言初学者、期末复习、入门基础考核考试时长:90分钟满分:100分一、单项选择题(共15题,每题2分,共30分)1.以下不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.在C语言中,定义符号常量必须使用的关键字是()A.defineB.constC.staticD.auto3.以下合法的C语言变量名是()A.123abcB.abc_123C.abc-123D.int4.C语言中,char型数据在内存中占用的字节数是()A.1B.2C.4D.85.表达式3+5%2的运算结果是()A.0B.4C.6D.86.若inta=5;执行a+=3;后,a的值为()A.3B.5C.8D.157.以下关于if语句的描述,正确的是()A.if后面的括号可以省略B.if语句只能嵌套一层C.else子句不能单独使用D.if判断条件只能是关系表达式8.循环语句中,用于跳出当前整个循环的关键字是()A.continueB.breakC.returnD.exit9.已知inta[3]={1,2};则数组a[2]的默认值是()A.随机值B.0C.2D.310.C语言中函数返回值的类型由()决定A.return语句后的表达式类型B.函数定义时的返回值类型C.调用函数时的变量类型D.系统自动判定11.以下不能作为循环for(;;)的合法条件的是()A.空条件B.1C.0D.以上都不对12.指针变量的本质是()A.存放数值的变量B.存放地址的变量C.字符串变量D.数组变量13.预处理指令#include的作用是()A.定义变量B.包含头文件C.声明函数D.编译优化14.若有int*p,a=10;p=&a;以下说法正确的是()A.p的值为10B.*p的值为10C.p和a的值相等D.*p是a的地址15.结构体变量初始化时,以下说法正确的是()A.必须逐个成员赋值B.可整体初始化赋值C.不能初始化D.只能定义后赋值二、填空题(共10空,每空2分,共20分)1.C语言程序的入口函数是________。2.整型变量a自增1的两种写法是________和________。3.逻辑运算中,“并且”的运算符是________,“或者”的运算符是________。4.数组下标从________开始计数。5.函数内部定义的变量称为________变量,仅在函数内有效。6.输出格式化数据的函数是printf,输入格式化数据的函数是________。7.二元运算符`/`对两个整数运算时,结果为________类型。三、程序阅读题(共3题,每题6分,共18分)写出以下程序的运行结果1.c

#include<stdio.h>

intmain()

{

inta=10,b=20;

if(a>b)

{

intt=a;

a=b;

b=t;

}

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

return0;

}2.c

#include<stdio.h>

intmain()

{

inti,sum=0;

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

{

if(i%2==0)

continue;

sum+=i;

}

printf("%d",sum);

return0;

}3.c

#include<stdio.h>

voidfun(intx)

{

x=x*2;

}

intmain()

{

inta=5;

fun(a);

printf("%d",a);

return0;

}四、程序改错(共2题,每题6分,共12分)以下程序均存在语法或逻辑错误,请找出并改正,写出完整正确代码1.实现输出1~10所有整数(存在错误)c

#include<stdio.h>

intmain()

{

inti;

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

printf("%d",i);

return0;

}2.实现两数求和(存在错误)c

#include<stdio.h>

intmain()

{

inta,b,sum;

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

sum=a+b;

printf("和为:%d",sum)

return0;

}五、编程题(共2题,每题10分,共20分)1.编写C语言程序,输入一个整数,判断该数是否为正数,若是输出“正数”,否则输出“非正数”。2.编写C语言程序,利用循环计算1~100所有整数的累加和并输出结果。参考答案及详细解析一、单项选择题答案及解析1.答案:C解析:C语言基础数据类型包含int整型、float单精度浮点型、double双精度浮点型、char字符型,没有string字符串类型,字符串需通过字符数组实现。2.答案:B解析:const用于定义常量,值不可修改;define是预处理宏定义,不属于关键字,static定义静态变量,auto定义自动变量。3.答案:B解析:C语言变量名规则:只能由字母、数字、下划线组成,不能以数字开头,不能使用系统关键字。A以数字开头,C含非法字符,D是关键字。4.答案:A解析:char字符型固定占用1个字节内存,int通常4字节,float4字节,double8字节。5.答案:B解析:取模运算符%优先级高于加法,先算5%2=1,再算3+1=4。6.答案:C解析:a+=3等价于a=a+3,初始a=5,计算后a=8。7.答案:C解析:if后括号不可省略,if语句可多层嵌套,else必须和if配对使用不能单独出现,if判断条件可以是任意合法表达式(逻辑、算术、赋值等)。8.答案:B解析:break跳出当前循环或switch语句;continue仅跳过本次循环,继续下一次循环;return用于结束函数。9.答案:B解析:C语言数组初始化时,未赋值的元素默认初始化为0。10.答案:B解析:函数返回值类型由定义函数时首部的类型决定,return后的表达式类型需与之匹配。11.答案:D解析:for(;;)是无限循环,空条件等价于条件为真,1代表真,0代表假,均为合法条件。12.答案:B解析:指针变量专门用于存放内存地址,通过地址可以访问对应变量的值。13.答案:B解析:#include是预处理指令,作用是引入对应的头文件,调用库函数必须包含对应头文件。14.答案:B解析:p存放变量a的地址,*p是解指针操作,获取地址对应的变量值,即10。15.答案:B解析:C语言结构体可以在定义时整体初始化,也可以逐个成员赋值。二、填空题答案1.main()2.a++;++a3.&&;||4.05.局部6.scanf7.整型三、程序阅读题答案及解析1.运行结果:10,20解析:初始a=10,b=20,判断a>b不成立,不执行交换代码,变量值保持不变。2.运行结果:9解析:循环遍历1-5,遇到偶数执行continue跳过累加,只累加奇数1、3、5,总和为9。3.运行结果:5解析:C语言函数参数传递为值传递,函数内修改的是形参x的值,不会影响主函数中实参a的值。四、程序改错题答案1.错误点:循环条件i<10,只能输出1-9,无法输出10,应改为i<=10c

#include<stdio.h>

intmain()

{

inti;

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

printf("%d",i);

return0;

}2.错误点:①scanf输入变量未加取地址符&;②printf语句末尾缺少分号c

#include<stdio.h>

intmain()

{

inta,b,sum;

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

sum=a+b;

printf("和为:%d",sum);

return0;

}五、编程题参考答案1.判断正数程序c

#include<stdio.h>

intmain()

{

intnum;

printf("请输入一个整数:");

scanf("%d",&num);

if(num>0)

{

printf("正数\n");

}

else

{

printf("非正数\n");

}

温馨提示

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

评论

0/150

提交评论