还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
江苏c语言期末考试题和答案
一、选择题(本题型共10题,每题2分,共20分)
1.以下C语言程序中,合法的变量定义是()A int2nd_name=10;B floata=
3.14;C char name=A;D double
1.234;
2.执行语句int a=5;printf%d,sizeofa;后,输出结果是()A5B8C4D
13.以下表达式中,运算优先级最高的是()A a+b*cB a+b*cC a+++cD*p+
14.若有定义int x=3,y=2;,则表达式xyx+y:x-y的值是()A5B1C325:1第1页共17页D
35.以下关于数组的描述中,错误的是()A数组的下标从0开始B数组定义时必须指定大小C数组名代表数组首地址D二维数组在内存中按行优先存储
6.函数调用funca,b;中,若func的形参为void funcint x,int y,则该函数的参数传递方式是()A值传递B地址传递C引用传递D混合传递
7.以下代码的输出结果是()#include stdio.hint main{int arr[]={1,2,3,4};printf%d,arr
[4];return0;}A1B4C随机值D编译错误
8.以下关于指针的描述中,正确的是()A指针变量的值是它所指向变量的类型第2页共17页B空指针可以赋值为NULLC指针变量的大小与类型无关D指针变量不能进行自增运算
9.以下程序的输出结果是()#include stdio.hvoid swapint*a,int*b{int temp=*a;*a=*b;*b=temp;}int main{int x=5,y=10;swapx,y;printf%d%d,x,y;return0;}A510B105C编译错误D不确定
10.以下关于结构体的描述中,正确的是()A结构体变量必须初始化B结构体成员的访问方式是结构体变量-成员名C结构体大小等于所有成员大小之和D结构体可以作为函数参数第3页共17页
二、判断题(本题型共10题,每题1分,共10分)对的打“√”,错的说“×”
1.C语言中,变量必须先定义后使用()
2.for循环的循环条件可以省略,但分号必须保留()
3.函数在定义时若没有返回值,必须声明为void类型()
4.数组作为函数参数时,传递的是数组的所有元素()
5.字符串abc在内存中存储为4个字符a、b、c、\0()
6.指针变量p指向变量a,则*p等价于a的值()
7.if语句中,若条件为真,则执行其后的所有语句,包括else部分()
8.结构体数组的每个元素都是结构体类型()
9.printf函数中,%d用于格式化输出字符型数据()
10.二维数组int a
[2]
[3]的行下标范围是0~1,列下标范围是0~2()
三、填空题(本题型共10题,每空1分,共15分)
1.C语言中,用于输入单个字符的函数是
(1),用于输出单个字符的函数是
(2)
2.若有定义int a=7;float b=
2.5;,则表达式a/b的结果类型是
(3)
3.数组int arr
[5]={1,2,3};中,arr
[4]的值是
(4),arr
[0]的值是
(5)
4.函数void funcint x中,若实参为5,则形参x的值是通过
(6)传递的第4页共17页
5.结构体struct Student{int id;char name
[20];};中,id是
(7)成员,name是
(8)成员
6.字符串复制函数strcpy的原型声明为
(9)
7.以下程序的输出结果是
(10)#include stdio.hint main{int x=10;int*p=x;*p=20;printf%d,x;return0;}
四、程序阅读题(本题型共10题,每题2分,共20分)(写出程序的输出结果)#include stdio.hint main{int a=3,b=5;if ab printfab;else printfa=b;return0;}输出结果
(1)#include stdio.hint main{int i,sum=0;第5页共17页for i=1;i4;i++{sum+=i;}printfsum=%d,sum;return0;}输出结果
(2)#include stdio.hint main{char c=A;printf%c%d,c,c;return0;}输出结果
(3)#include stdio.hvoid printint x{x++;}int main{int a=2;printa;printf%d,a;return0;}输出结果
(4)第6页共17页#include stdio.hint main{int arr[]={10,20,a};printf%d,arr
[2];return0;}(注a的ASCII码为97)输出结果
(5)#include stdio.hint main{int i,j;for i=1;i=2;i++{for j=i;j=2;j++{printf%d,i+j;}}return0;}输出结果
(6)#include stdio.hint main{int a=5;int*p=a;int**pp=p;**pp=10;第7页共17页printf%d,a;return0;}输出结果
(7)#include stdio.hint main{char str[]=hello world;printf%s,str+str
[5]-a;return0;}(注str
[5]为空格,的ASCII码为32,a-a=0,32-97=-65,此处可能题目有误,修正为str
[6]=w则输出world,但按原题,str+32-97=str-65,越界,输出随机值,此处按原题输出)输出结果(按原题逻辑)
(8)#include stdio.hstruct Test{intx;int y;};int main{struct Testt={1,2};struct Test*p=t;printf%d%d,p-x,p-y;return0;}第8页共17页输出结果
(9)
五、程序改错题(本题型共8题,每题3分,共24分)(找出错误并改正,若有2处错误,需分别指出)#include stdio.hint main{int sum=0;for int i=1;i=10;i++{sum+=i;}printfSum:%d,sum;return0;}错误1
(1)改正
(1)错误2
(2)改正方法
(2)int addint a,int b{return a+b;}int main{intx=3,y=4;printfAdd:%d,addx,y;return0;}错误1
(1)第9页共17页改正
(1)#include stdio.hint main{int arr
[3]={1,2,3,4};for int i=0;i3;i++{printf%d,arr[i];}return0;}错误1
(1)改正
(1)#include stdio.hint main{char c=A;printf%c,c;}错误1
(1)改正方法
(1)#include string.hint main{char dest
[10],src[]=test;strcpydest,src;printfdest:%s,dest;return0;}第10页共17页错误1
(1)改正方法
(1)#include stdio.hint main{intx=5,y=10;if xy{printfxy;}else ifx==y{printfx==y;}return0;}错误1
(1)改正方法
(1)#include stdio.hint main{int a=0;while a5{a++;if a==3break;printf%d,a;}return0;}错误1
(1)第11页共17页改正方法
(1)#include stdio.hint main{int arr
[2]
[2]={{1,2},{3,4}};printf%d,arr
[1]
[2];return0;}错误1
(1)改正方法
(1)
六、程序设计题(本题型共7题,每题3分,共21分)(写出程序或函数的代码)
1.编写函数int maxinta,int b,返回两个整数的最大值函数代码
(1)
2.编写程序,输入一个整数n,输出1到n的所有素数程序代码(部分)
(2)(提示素数判断函数可复用题1中的逻辑)
3.编写函数void reverseint*arr,int len,将数组arr的前len个元素逆序排列函数代码
(3)
4.编写程序,定义结构体Student(包含id、name、score),输入3个学生信息,输出平均分程序代码(部分)
(4)
5.编写程序,输出斐波那契数列的前10项(1,1,2,3,
5...)程序代码
(5)第12页共17页
6.编写函数void strCatchar*dest,char*src,将字符串src连接到dest末尾(不使用strcat)函数代码
(6)
7.编写程序,使用指针遍历数组int arr[]={5,2,8,1,9},找出最大值及其下标程序代码
(7)答案汇总
一、选择题
1.B
2.C
3.D
4.A
5.B
6.C
7.D
8.B
9.B
10.C
二、判断题
1.√
2.√
3.√
4.×
5.√
6.√
7.×
8.√
9.×
10.√
三、填空题
1.1getchar2putchar
2.3double
3.
40514.6值传递
5.7整型8字符数组
6.9char*strcpychar*dest,const char*src;
7.1020
四、程序阅读题
1.1a=b
2.2sum=
63.3A
654.
425.
5976.
623347.710第13页共17页
8.8(按原题逻辑,输出随机值,实际应为world,修正题目后输出world)
9.912注第8题原题目str+32-97越界,修正为str+6(str
[6]=w),输出world
五、程序改错题
1.1无错误(或原代码正确,若需改,可删除int i的定义,用全局i)2无错误(若原题目为fori=1;i10;i++sum+=i;则错误1sum初始值0,正确)
2.1无错误(函数定义正确,main返回0)
3.1错误数组初始化元素个数43,改正int arr
[4]={1,2,3,4};
4.1错误char类型不能赋值字符串,改正:char c=A;
5.1无错误(strcpy可正常复制)
6.1错误缺少else分支,改正添加else{printfxy;}
7.1无错误(逻辑正确,输出12)
8.1错误arr
[1]
[2]越界(列下标最大1),改正arr
[1]
[1]
六、程序设计题
1.1int maxinta,int b{return aba:b;}
2.2(代码框架)#include stdio.hint isPrimeint n{//素数判断逻辑}第14页共17页int main{intn,i;scanf%d,n;for i=2;i=n;i++{if isPrimeiprintf%d,i;}return0;}
3.3void reverseint*arr,int len{int i,temp;for i=0;ilen/2;i++{temp=arr[i];arr[i]=arr[len-1-i];arr[len-1-i]=temp;}}
4.4(代码框架)#include stdio.hstruct Student{int id;charname
[20];float score;};int main{struct Students
[3];float avg=0;inti;for i=0;i3;i++{scanf%d%s%f,s[i].id,s[i].name,s[i].score;第15页共17页avg+=s[i].score;}printfAvg:%.2f,avg/3;return0;}
5.5(代码框架)#include stdio.hint main{inta=1,b=1,c,i;printf%d%d,a,b;for i=3;i=10;i++{c=a+b;printf%d,c;a=b;b=c;}return0;}
6.6void strCatchar*dest,char*src{inti=0,j=0;while dest[i]!=\0i++;while src[j]!=\0{dest[i+j]=src[j];j++;}第16页共17页dest[i+j]=\0;}
7.7(代码框架)#include stdio.hint main{int arr[]={5,2,8,1,9},max=arr
[0],min=arr
[0],max_idx=0,min_idx=0,i;for i=0;isizeofarr/sizeofarr
[0];i++{if arr[i]max{max=arr[i];max_idx=i;}if arr[i]min{min=arr[i];min_idx=i;}}printfmax:%d,idx:%d;min:%d,idx:%d,max,max_idx,min,min_idx;return0;}(注部分改错题及程序设计题因原题目可能存在不同错误,已按常见错误类型修正,答案逻辑符合C语言语法规范)第17页共17页。
个人认证
优秀文档
获得点赞 0