还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
宁波大学c语言理论考试试题和答案
一、选择题(共15题,每题2分,共30分)
1.以下关于C语言的描述中,正确的是()A.C语言是一种低级语言,只能直接操作硬件B.C语言中的变量在定义时必须指定数据类型C.C语言的注释只能是单行注释//D.C程序的执行入口函数是main,且必须有返回值
2.以下不属于C语言基本数据类型的是()A.int B.float C.string D.char
3.表达式10/3+10%3的结果是()A.5B.4C.3D.
24.若有定义int a=5,b=3;,则执行语句a+=b++;后,a和b的值分别是()A.a=8,b=4B.a=8,b=3C.a=5,b=4D.a=5,b=
35.以下循环结构中,先判断条件再执行循环体的是()A.for循环B.while循环C.do-while循环D.A和B
6.关于C语言函数的描述,错误的是()A.函数可以没有返回值,此时返回类型为voidB.函数调用时,实参传递给形参是值传递C.函数必须在使用前进行声明或定义D.函数的形参可以在函数外被访问
7.以下数组定义正确的是()A.int arr
[5]={1,2,3,4};B.int arr[]={1,2,3,4,5};第1页共11页C.float arr
[3]={
1.2,
3.4,
5.6,
7.8};D.char arr
[5]=abc;
8.若有定义int*p;,则p是()A.指向int类型的指针变量B.int类型的指针常量C.存储int类型数据的变量D.指向int类型的函数指针
9.以下关于结构体的描述,正确的是()A.结构体的成员必须是相同类型B.结构体变量的大小等于各成员大小之和C.结构体可以直接赋值,如struct Aa1,a2;a1=a2;D.结构体变量的成员可以通过-运算符访问
10.以下哪个函数用于从标准输入读取一个字符()A.scanf B.printf C.getchar D.puts
11.若有定义char str[]=Hello,则str
[4]的值是()A.H B.e C.l D.o
12.关于C语言中变量作用域的描述,正确的是()A.全局变量在所有函数中都可见B.局部变量可以被全局函数访问C.静态局部变量的生命周期是整个程序运行期间D.A和C
13.以下程序段的输出结果是()int i,sum=0;fori=1;i=5;i++{ifi%2==0continue;sum+=i;}printf%d,sum;第2页共11页A.6B.9C.15D.
014.若有定义int a
[3]
[2]={{1,2},{3,4},{5,6}},则a
[2]
[1]的值是()A.5B.6C.3D.
415.以下关于指针运算的描述,错误的是()A.指针可以进行自增运算,如p++B.两个同类型指针可以相减,结果是元素个数差C.指针可以与整数相加,如p+3D.指针可以直接赋值给int类型变量
二、填空题(共10空,每空1分,共10分)
1.C语言程序的基本单位是________,一个完整的C程序必须包含且只能包含一个________函数
2.变量在使用前必须进行________,其作用是指定变量的________和________
3.表达式abcd的运算优先级高于________,低于________
4.for循环的一般形式为for表达式1;表达式2;表达式3,其中表达式1的作用是________,表达式2的作用是________
5.数组名在作为函数参数传递时,实际上传递的是数组的________,此时对形参数组元素的修改会影响实参数组
6.结构体类型定义的一般形式是________,其中________是结构体的标签,________是结构体成员列表
7.函数调用时,若函数无参数,参数列表可以写________或________第3页共11页
8.字符常量在C语言中用________括起来,字符串常量用________括起来
9.若int类型占4个字节,float类型占4个字节,则int a=5;float b=
3.14f;,a和b在内存中共占用________个字节
10.动态内存分配函数malloc的原型是________,其返回值类型是________
三、判断题(共10题,每题1分,共10分)
1.C语言中的关键字int可以用来定义无符号整数变量()
2.赋值运算符=的优先级低于关系运算符,如a=bc中,先执行bc()
3.函数的返回值类型为int时,若函数中没有return语句,程序会返回0()
4.数组的下标是从1开始的,如arr
[1]表示数组的第一个元素()
5.指针变量本身也占用内存空间,其大小通常等于操作系统的位数(如32位系统为4字节)()
6.结构体变量的地址可以通过运算符获取,如struct_var()
7.C语言中,注释/**/可以嵌套使用,即一个注释内部可以包含另一个注释()
8.全局变量若未初始化,其默认值为0()
9.调用fgets函数读取字符串时,会将换行符\n一起读入()
10.递归函数一定比非递归函数的执行效率高()
四、程序阅读题(共5题,每题4分,共20分)第4页共11页
1.阅读以下程序,写出输出结果#include stdio.hint main{int x=10,y=20;int*p=x,*q=y;*p=*q+5;printfx=%d,y=%d\n,x,y;return0;}输出结果_________________
2.阅读以下程序,写出输出结果#include stdio.hvoid funcinta,int b{a=a+b;b=a+b;}int main{int x=3,y=4;funcx,y;printfx=%d,y=%d\n,x,y;return0;}输出结果_________________
3.阅读以下程序,写出输出结果#include stdio.h第5页共11页int main{int i,j;fori=1;i=3;i++{forj=1;j=i;j++{printf*;}printf\n;}return0;}输出结果_________________
4.阅读以下程序,写出输出结果#include stdio.hint main{char str[]=C Language;int len=0;whilestr[len]!=\0{len++;}printfLength:%d\n,len;return0;}输出结果_________________
5.阅读以下程序,写出输出结果#include stdio.h第6页共11页int addinta,int b{static intc=0;c+=a+b;return c;}int main{int x=2,y=3,z=4;printf%d,%d\n,addx,y,addy,z;return0;}输出结果_________________
五、程序改错题(共3题,每题5分,共15分)
1.以下程序的功能是计算1到10的和,找出其中的错误并改正#include stdio.hmain{int sum=0,i;fori=1to10{sum+=i;}printfSum:%d,sum;}错误及改正_________________________________________________第7页共11页
2.以下程序的功能是输出数组中所有元素,找出其中的错误并改正#include stdio.h#define N5int main{int arr[N]={1,2,3,4,5};int i;fori=0;iN;i++printfarr[i];return0;}错误及改正_________________________________________________
3.以下程序的功能是交换两个变量的值,找出其中的错误并改正#include stdio.hvoid swapinta,int b{int temp=a;a=b;b=temp;}int main{int x=5,y=10;swapx,y;printfx=%d,y=%d,x,y;第8页共11页return0;}错误及改正_________________________________________________
六、简答题(共3题,每题5分,共15分)
1.C语言中变量的作用域和生命周期的区别是什么?请举例说明
2.什么是指针?简述指针变量的定义、赋值和使用方法,并说明指针作为函数参数的作用
3.结构体与联合体的主要区别是什么?在什么场景下适合使用结构体,什么场景下适合使用联合体?
七、程序设计题(共2题,每题10分,共20分)
1.编写一个C程序,从键盘输入10个整数,计算并输出其中所有偶数的和
2.编写一个C程序,定义一个学生结构体,包含学号、姓名、成绩三个成员,从键盘输入3个学生的信息,输出所有成绩大于80分的学生信息答案汇总选择题
1.B
2.C
3.A
4.A
5.D
6.D
7.B
8.A
9.C
10.C
11.D
12.D
13.B
14.B
15.D填空题
1.函数,main
2.定义,数据类型,存储类型
3.逻辑与,赋值运算符
4.初始化循环变量,判断循环条件
5.首地址
6.struct结构体名{成员列表};struct结构体名,{成员列表}
7.空,void
8.单引号,双引号
9.
810.void*mallocsize_tsize;void*第9页共11页判断题
1.错
2.对
3.错
4.错
5.对
6.对
7.错
8.对
9.对
10.错程序阅读题
1.x=25,y=
202.x=3,y=
43.\n**\n**
4.
115.5,12程序改错题
1.错误1main函数前缺少返回类型int;错误2for循环条件中to应为;;改正#include stdio.h int main{int sum=0,i;fori=1;i=10;i++{sum+=i;}printfSum:%d,sum;return0;}
2.错误1printf函数格式错误,缺少格式控制符;改正printf%d,arr[i];
3.错误1swap函数使用值传递,无法交换实参;改正将swap函数改为voidswapint*a,int*b{int temp=*a;*a=*b;*b=temp;}简答题
1.作用域是变量可被访问的范围,生命周期是变量存在的时间;例如全局变量作用域为整个程序,生命周期为程序运行期间;局部变量作用域为所在函数,生命周期为函数执行期间
2.指针是指向变量地址的变量;定义格式为“数据类型*指针变量名;”,赋值为“指针变量名=变量名;”,使用为“*指针变量名”;作为函数参数可实现地址传递,修改实参值
3.结构体成员独立占用内存,联合体成员共用一块内存;结构体用于存储多个不同类型数据(如学生信息),联合体用于同一内存存储不同类型数据(如同一内存存储int和float)程序设计题
1.#include stdio.h intmain{int arr
[10],sum=0,i;fori=0;i10;i++{scanf%d,arr[i];ifarr[i]%2==0sum+=arr[i];}printfEven sum:%d,sum;return0;}
2.#include stdio.h structStudent{intid;char name
[20];float score;};intmain{struct第10页共11页Student students
[3];int i;fori=0;i3;i++{printfEnter id:;scanf%d,students[i].id;printfEnter name:;scanf%s,students[i].name;printfEnter score:;scanf%f,students[i].score;}fori=0;i3;i++{ifstudents[i].score80{printfid:%d,name:%s,score:%.1f\n,students[i].id,students[i].name,students[i].score;}}return0;}第11页共11页。
个人认证
优秀文档
获得点赞 0