还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算机二级c语言试题和答案
一、选择题(本题型共20题,每题2分,共40分)
1.以下选项中,不属于C语言基本数据类型的是()A.intB.floatC.charD.array
2.在C语言中,变量的命名规则错误的是()A.变量名由字母、数字和下划线组成B.变量名的第一个字符必须是字母或下划线C.变量名区分大小写D.变量名可以使用关键字作为名称
3.以下表达式中,结果为1的是()A.3210B.3210C.!32D.32+
104.以下程序段执行后变量x的值为()int a=5,b=3;x=aba+b:a-b;A.2B.3C.5第1页共12页D.
85.以下关于for循环的描述,错误的是()A.for循环可以用来实现循环次数已知的循环B.for循环的三个表达式都可以省略,但分号不能省略C.for循环只能用于循环次数固定的情况D.for循环语法格式为for初始化表达式;条件表达式;增量表达式
6.以下数组定义正确的是()A.int arr
[5]={1,2,3};B.int arr[]={1,2,3,4,5};C.char str
[5]=hello;D.float f
[3]={
1.2,
3.4,
5.6,
7.8};
7.以下关于指针的描述,正确的是()A.指针变量可以直接赋值为整数B.指针变量存储的是变量的类型C.运算符用于获取变量的地址D.*运算符用于获取指针变量的值
8.以下函数定义中,正确的是()A.void func{return5;}B.int func{return5;}C.func void{return;}D.funcint a{return a;}
9.以下结构体定义中,正确的是()A.struct student{int id;char name
[20];};B.struct{int id;char name
[20];}student;第2页共12页C.struct student{int id;char name
[20];};D.struct student{int id;char name
[20];}s;
10.执行以下程序段后的输出结果为()int i,sum=0;fori=1;i=10;i++{ifi%2==0continue;sum+=i;}printf%d,sum;A.25B.30C.55D.
10011.以下关于结构体的描述,错误的是()A.结构体可以包含不同类型的成员B.结构体变量的每个成员都有自己的内存地址C.结构体变量的大小等于各成员大小之和D.结构体不能作为函数参数传递
12.以下程序段的输出结果是()int a=10,b=20;void swapint x,int y{int temp=x;x=y;y=temp;}第3页共12页swapa,b;printf%d,%d,a,b;A.10,20B.20,10C.10,10D.20,
2013.以下关于数组作为函数参数的描述,正确的是()A.数组名作为函数参数时传递的是数组的所有元素B.数组作为函数参数时,实参数组和形参数组的大小必须完全相同C.数组作为函数参数时,实际上传递的是数组的首地址D.不能将数组作为函数参数传递
14.以下程序段的输出结果是()char str[]=abcde;printf%c,str
[3];A.aB.bC.cD.d
15.以下关于函数的描述,错误的是()A.函数可以有返回值,也可以没有返回值B.函数定义时必须指定返回值类型C.函数调用时,实参的个数必须与形参的个数相同D.函数可以嵌套调用
16.以下关于动态内存分配的描述,正确的是()A.malloc函数返回的是void类型指针第4页共12页B.calloc函数不可以为数组分配内存C.free函数可以释放任意类型的内存D.动态分配的内存不需要手动释放
17.执行以下程序段后变量k的值为()int a=3,b=5,k=0;k=aba+b:a-b;A.-2B.2C.8D.
018.以下关于循环的描述,正确的是()A.do-while循环的循环体至少执行一次B.while循环的循环体至少执行一次C.for循环的循环体不能为空D.三种循环都必须有循环条件
19.以下程序段的输出结果是()intx=5,y=3;ifxyifx6printfA;elseprintfB;elseprintfC;A.A第5页共12页B.BC.CD.无输出
20.以下关于指针数组的描述,正确的是()A.指针数组是一个存储指针的数组B.指针数组的每个元素都是一个函数名C.指针数组不能作为函数参数D.指针数组的大小是固定的,不能动态改变
二、填空题(本题型共10题,每题2空,每空1分,共20分)
1.#include stdio.hint main{int sum=0,i;fori=1;i=100;i++{if______1______//判断i是否为偶数sum+=______2______;//将i累加到sum}printfsum=%d,sum;return0;}
2.#include stdio.hint main{int i;fori=1;i=10;i++{if______3______//判断i是否为奇数printf%d,i;第6页共12页}return0;}
3.#include stdio.h#include string.hstruct student{int id;char name
[20];float score;};int main{struct students;s.id=1001;strcpys.name,______4______;//填写字符串张三s.score=
95.5;printf学号%d,姓名%s,成绩%.1f,s.id,s.name,s.score;return0;}
4.#include stdio.hint main{int a,b,temp,gcd;scanf%d%d,a,b;whileb!=0{temp=a%b;第7页共12页a=b;b=temp;}gcd=______5______;//最大公约数是循环结束后的aprintf最大公约数%d,gcd;return0;}
5.#include stdio.hint main{int n,i,fact=1;scanf%d,n;fori=1;i=n;i++{fact*=______6______;//累乘i}printf%d!=%d,n,fact;return0;}
6.#include stdio.hint main{int a=1,b=1,c,i;printf%d%d,a,b;fori=3;i=10;i++{c=a+b;printf%d,c;a=b;第8页共12页______7______;//将b的值赋给a,c的值赋给b}return0;}
7.#include stdio.hvoid swapint*x,int*y{int temp;temp=*x;*x=y;______8______;//将temp的值赋给y}int main{int a=10,b=20;swapa,b;printf%d%d,a,b;return0;}
8.#include stdio.hint main{int i,j,isPrime;fori=2;i=100;i++{isPrime=1;forj=2;ji;j++{if______9______{//判断i是否能被j整除isPrime=0;第9页共12页break;}}ifisPrimeprintf%d,i;}return0;}
9.#include stdio.hint main{char str[]=hello world;int len=0;whilestr[len]!=______10______{//循环直到遇到字符串结束符len++;}printf字符串长度%d,len;return0;}
10.#include stdio.hint main{int arr[]={1,3,5,7,9};int i,sum=0;fori=0;i5;i++{sum+=______11______;//累加数组元素第10页共12页}float avg=floatsum/5;//注意类型转换printf平均值%.2f,avg;return0;}
三、程序改错题(本题型共2题,每题5分,共10分)
1.以下程序的功能是计算1到10的和,请找出并改正程序中的错误#include stdio.hmain{int i,sum;sum=0;fori=1;i=10;i++sum+i;printfsum=%d,sum;}错误1______;改正______错误2______;改正______
2.以下程序的功能是输出1到100之间的所有素数,请找出并改正程序中的错误#include stdio.hint main{int i,j,isPrime;fori=2;i=100;i++{isPrime=true;第11页共12页forj=2;j=i;j++{ifi%j==0{isPrime=false;break;}}ifisPrimeprintf%d,i;}return0;}错误1______;改正第12页共12页。
个人认证
优秀文档
获得点赞 0