还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
华清学院c语言考试题和答案
一、选择题(本题型共15题,每题2分,共30分)
1.C语言程序的基本执行单位是()A.语句B.函数C.程序段D.过程
2.以下不属于C语言基本数据类型的是()A.int B.float C.char D.string
3.变量在定义时若未显式初始化,全局变量的默认值是()A.0B.随机值C.1D.未定义
4.表达式10+3*2-5%2的运算结果是()A.14B.15C.16D.
175.以下关于if语句的描述,正确的是()A.if条件表达式必须为整数B.if语句只能控制一条语句C.if条件为假时不执行任何操作D.if语句的条件表达式为真时执行后续语句
6.若有定义int a=5;,则a表示()A.变量a的值B.变量a的地址C.无意义D.编译错误
7.以下能正确定义一个包含3个字符元素的数组的是()A.char c
[3]=abc;B.char c
[3]={a,b};C.char c
[3]={a,b,c};D.char c
[3]=a;
8.函数void funcint x{...}的返回值类型是()A.int B.void C.不确定D.编译错误
9.以下关于指针的描述,错误的是()A.指针变量存储的是地址B.指针可以直接进行加减运算第1页共16页C.空指针的值是NULL D.指针变量的类型必须与指向的变量类型一致
10.表达式3245的结果是()(1表示真,0表示假)A.0B.1C.2D.编译错误
11.以下能正确计算1到100之和的循环是()A.int sum=0,i=1;whilei=100sum+=i++;B.int sum=0,i=1;do{sum+=i;i++;}whilei=100;C.int sum=0,i=1;for;i=100;sum+=i,i++;D.以上都正确
12.结构体变量struct Student{int id;char name
[20];};中,name成员的类型是()A.int B.char C.字符数组D.结构体
13.以下关于数组作为函数参数的描述,正确的是()A.数组名作为参数时,是将数组所有元素复制给形参B.形参数组的大小必须与实参数组完全一致C.数组名作为参数时,传递的是数组的首地址D.无法将数组作为函数参数
14.若有定义int*p;,则p可以指向的变量类型是()A.int B.float C.double D.以上都可以
15.C语言中,用于动态分配内存的函数是()A.malloc B.free C.calloc D.A和C
二、填空题(本题型共15题,每题1分,共15分)
1.C语言中,用于输出格式化数据的函数是________
2.若定义int a=10;,则a++表达式的值是________,执行后a的值是________第2页共16页
3.数组int arr
[5]={2,4,6};中,arr
[3]的值是________,arr
[4]的值是________
4.函数main中定义的变量称为________变量,其作用域是________
5.表达式5/2的结果是________(整数除法),
5.0/2的结果是________(浮点数除法)
6.结构体变量初始化时,成员的赋值顺序必须与结构体定义时成员的声明顺序________(相同/不同)
7.指针变量p指向变量x,则*p表示________,p+1表示________
8.for循环的语法结构是for表达式1;表达式2;表达式3,其中________可以省略,但分号不能省略
9.C语言中,#include stdio.h的作用是________
10.若要判断一个整数x是否为偶数,条件表达式可以写为________
11.字符串Hello在内存中存储时,末尾会自动添加一个________字符,其ASCII值是________
12.函数的参数分为________参数和________参数
13.二维数组int arr
[2]
[3]={{1,2,3},{4,5,6}};中,arr
[1]
[2]的值是________
14.变量a为const int类型,则a的值在定义后________(可以/不可以)被修改
15.宏定义#define MAXa,b aba:b中,MAX3+2,4的展开结果是________
三、判断题(本题型共10题,每题1分,共10分)第3页共16页
1.C语言中的main函数必须有返回值()
2.数组名可以作为左值参与赋值运算()
3.局部变量的作用域仅限于定义它的函数或复合语句内()
4.scanf函数的格式控制符%d可以读取带小数点的数字(如
3.14)()
5.结构体变量可以直接使用==运算符进行比较()
6.C语言中的break和continue语句都可以用于循环控制()
7.指针变量的大小与它指向的变量类型无关,在32位系统中通常为4字节()
8.函数声明时必须指定返回值类型,否则默认返回void()
9.多行注释/*...*/可以嵌套使用()
10.动态分配的内存(如malloc分配的)在程序结束时会自动释放()
四、程序阅读题(本题型共10题,每题3分,共30分)(阅读以下程序,写出程序的输出结果,若有多个输出值,用空格分隔)
1.#include stdio.hint main{int a=5,b=3;printf%d,aba:b;return0;}输出结果________
2.#include stdio.hint main{第4页共16页int i;fori=0;i4;i++{printf%d,i;}return0;}输出结果________
3.#include stdio.hint addint x,int y{return x+y;}int main{int a=10,b=20;printf%d,adda,b;return0;}输出结果________
4.#include stdio.hint main{int arr[]={1,2,3,4,5};int*p=arr;printf%d,*p+2;return0;}输出结果________第5页共16页
5.#include stdio.hint main{int x=10;ifx5{x+=5;}else{x-=5;}printf%d,x;return0;}输出结果________
6.#include stdio.hint main{int i,sum=0;fori=1;i=3;i++{sum+=i;}printfsum=%d,sum;return0;}输出结果________
7.#include stdio.hvoid swapint*a,int*b{int temp=*a;第6页共16页*a=*b;*b=temp;}int main{intx=3,y=5;swapx,y;printf%d%d,x,y;return0;}输出结果________
8.#include stdio.hint main{char c=A;printf%d,c;return0;}输出结果________(提示A的ASCII值为65)
9.#include stdio.hint main{int a=0;do{a++;printf%d,a;}whilea3;return0;第7页共16页}输出结果________
10.#include stdio.hint main{int i=-2;ifi%2==0{printf偶数;}else{printf奇数;}return0;}输出结果________
五、程序改错题(本题型共10题,每题3分,共30分)(以下程序均存在一处错误,请指出错误位置并改正,只写改正后的代码)
1.#include stdio.hint main{int a=10printfa=%d,a;return0;}错误位置及改正________
2.#include stdio.hint main{第8页共16页int arr
[3]={1,2,3,4};printf%d,arr
[3];return0;}错误位置及改正________
3.#include stdio.hint main{intx=5;ifx5printfx大于5;elseprintfx小于等于5return0;}错误位置及改正________
4.#include stdio.hint func{return Hello;}int main{printf%d,func;return0;}错误位置及改正________
5.#include stdio.h第9页共16页int main{int*p;*p=10;printf%d,*p;return0;}错误位置及改正________
6.#include stdio.hint main{int a=5,b=3;ifa=b{printfa等于b;}return0;}错误位置及改正________
7.#include stdio.hint main{int i=0;whilei10{printf%d,i;i++;ifi==5break;}return0;第10页共16页}错误位置及改正________(提示程序逻辑是否正确)
8.#include stdio.hstruct Student{int id;char name
[20]};int main{struct Students={1001,张三};printfid:%d,name:%s,s.id,s.name;return0;}错误位置及改正________
9.#include stdio.hint main{int a=10,b=20;int max=aba:b;printfmax;return0;}错误位置及改正________
10.#include stdio.hint main{int arr
[5]={0};forint i=0;i=5;i++{第11页共16页arr[i]=i;}return0;}错误位置及改正________
六、程序设计题(本题型共5题,每题5分,共25分)(根据题目要求编写完整C语言程序,确保语法正确、逻辑清晰)
1.编写程序,输入两个整数,输出它们的最大值(答案#include stdio.hint main{int a,b;scanf%d%d,a,b;int max=aba:b;printf%d,max;return0;})
2.编写程序,计算1到100之间所有偶数的和(答案#include stdio.hint main{int sum=0,i=2;whilei=100{sum+=i;i+=2;}printf%d,sum;第12页共16页return0;})
3.编写程序,定义一个函数factorialn计算n的阶乘(n!=1*2*...*n),并在main函数中调用该函数输出5的阶乘(答案#include stdio.hint factorialintn{int result=1;forint i=1;i=n;i++{result*=i;}return result;}int main{printf%d,factorial5;return0;})
4.编写程序,输入一个字符串,输出该字符串的长度(不使用strlen函数)(答案#include stdio.hint main{char str
[100];int len=0;scanf%s,str;whilestr[len]!=\0{len++;第13页共16页}printf%d,len;return0;})
5.编写程序,定义一个结构体Book,包含成员id(书号)、name(书名)、price(价格),并创建一个结构体数组存储3本书的信息,输出每本书的信息(答案#include stdio.hstruct Book{int id;char name
[50];float price;};int main{struct Bookbooks
[3]={{1001,C语言程序设计,
45.5},{1002,数据结构,
59.0},{1003,操作系统,
68.0}};forint i=0;i3;i++{printfid:%d,书名:%s,价格:%.1f\n,books[i].id,books[i].name,books[i].price;}return0;})第14页共16页参考答案汇总
一、选择题
1.B
2.D
3.A
4.A
5.D
6.B
7.B
8.B
9.B
10.B
11.D
12.C
2.C
14.D
15.D
二、填空题
1.printf
2.10,
113.0,
04.局部,main函数内
5.2,
2.
56.相同
7.x的值,下一个存储单元的地址
8.表达式1或表达式3或表达式
29.引入标准输入输出库
10.x%2==
011.\0,
012.形式,实际
13.
614.不可以
15.5
三、判断题
1.√
2.×
3.√
4.×
5.×
6.√
7.√
8.×
9.×
10.×
四、程序阅读题
1.
52.
01233.
304.
35.
156.sum=
67.
538.
659.
12310.偶数
五、程序改错题
1.第2行缺少分号,改为“int a=10;”
2.数组越界,改为“printf%d,arr
[2];”
3.第6行缺少分号,改为“printfx小于等于5;”
4.函数返回类型错误,改为“return0;”(或“int func{return0;}”)
5.未初始化指针,改为“int a=10;int*p=a;”
6.条件判断用“==”,改为“ifa==b”
7.循环条件错误,改为“fori=0;i10;i++”(原逻辑正确,此处可能需调整,若原程序逻辑正确则无错,此处假设原程序逻辑正确,无错误)
8.第3行缺少分号,改为“char name
[20];”第15页共16页
9.输出函数参数错误,改为“printf%d,max;”
10.循环越界,改为“forint i=0;i5;i++”
六、程序设计题(答案已在题目中标注,此处省略)第16页共16页。
个人认证
优秀文档
获得点赞 0