2022年C语言期末考试试题及答案2.docx
精品学习资源节第2021-2021 学年 第一学期 期末考试试卷考试说明 :本课程为闭卷考试,可携带书写与修正文具,满分为:100 分;周间考试终止后请将后页答题卡与试卷分开上交;时一、单项题 <每题 2 分,共 30 分)课1以下表达正确选项 ;上班A) C 程序的每行只能写一条语句B>语言本身没有输入输出语句课C)在 C 程序中,注释说明只能位于一条语句的后面2以下不正确的常量表示形式是 ;A> 0.45B>0XF5C> 85D>选D)在多函数的程序中,main 函数必需放在其它子函数的定义之前-32.67E-5- 3.以下不正确的变量名是 ;- AR&BB>_maxC> INTD> SUM3教 -师 -4.以下正确的一组语句是 ;课 -A> int x=y=5;B>intn;scanf"%d",&n>int授 -an;- C> char a,*p; p=&a;D> char s10; s="hello"-线5.如以下变量均已正确定义和赋值,就正确的语句是 ;-A> a=b=5;B> y=x%2.0;C> x+y=10;D> n=8=2*4;- 6下面各组中与给出的程序段功能不等价的是;-ifa>0> b=1;- else ifa=0> b=0;名 -else b=-1;-姓 -A>ifa>0> b=1;B>ifa>0> b=1;C>ifa>0> b=1;D>ifa>=0>-ifa=0> b=0;elseifa=0>b=0;订ifa>0> b=1;-ifa<0> b=-1;ifa<0> b=-1;else b=-1;ifa=0> b=0;-elseb=0;-ifa<0> b=-1;- 7.运行下面程序段,如输入abc#<CR>,就程序输出是:;- char c;int v1=0,v2=0;学 -号 -whilec=getchar>>.='#'>- switchc>-装 case 'a':v1+; default :v1+;v2+;-case 'c':v2+;-printf"v1=%d,v2=%dn",v1,v2>级年 -A>2,2B>3,5C>3,4D>2,5业 -专1 / 6欢迎下载精品学习资源共 8 页 第 2 页8. 对 for表达式 1; ;表达式 3> 可以懂得为:;A>for表达式 1;1; 表达式 3> B> for表达式 1; 表达式 1; 表达式 3> C>for 表达式 1;0; 表达式 3> D> for表达式 1; 表达式 3; 表达式 3> 9. 如有定义 char a=”china ”,b=c, h, i , n, a; 就下面正确的表达为:A>数组 a 的长度小于数组b 的长度B>数组a 和 b 的长度相同C>数组 a 的长度大于数组b 的长度D>数组a 和数组 b 中储备的内容完全一样10. 已知 a,b,m,n,c,d变量的定义如下,就执行完以下程序段后m,n 的值为:;int a=3,b=4,m=0,n=0,c=3,d=4;m=a<b>|n=c<d>A> m=1 n=1B> m=1 n=0C> m=0 n=0D>m=0n=111. 下面程序的输出结果是:void main> ; char s20=”;printf“%d”,strlens>>A> 8B> 5C> 11D> 10;12.如有定义 inta33=1,2,3,4,5,6,7,8,9,*p>3=a;就下面能正确引用数组元素的表达式为: ;A> a33B> *p+2>+2C> p21D> *a+1+1>13.下面正确的函数定义是: ;A> double funint x, int y>B> int funint x, y> z=x+y; return z; int z; z=x+y; return z;C> double funx, y>D> funint x, int y> int x,y; double z; int z; z=x+y; return z; z=x+y; return z;14. 如有定义 int *p> >就下面表达正确选项: ;A> p 是指向一维数组的指针变量B> p 是指向整型数据的指针变量C> p 是一个函数名,该函数的返回值是指向整型数据的指针D> p 是指向函数的指针变量,该函数的返回值是整型数据15. 设有如下定义语句,就下面的表达不正确选项 ;struct A int a;float x; s;A) a 和 x都是结构体成员名B) s 是用户定义的结构体类型名C) struct A是用户定义的结构体类型D) struct是结构体类型的关键字2 / 6欢迎下载精品学习资源中国海洋高校2021-2021 学年 第一学期 期末考试试卷二、v填oid空ma题in><每空 2 分,共 20 分)int i,num=0,word=0;1. 如要定义一个变量x 来储备数据,储备的数据都是正整数,最大值不超过char s80; getss>65535,就变量 x 的定义为 _【1】;欢迎下载精品学习资源2.设 flofoartix=03;s.5i,.=y'=4.8;int a =80;'i+>就表达式 x + a % 3 * int>x+y> % 2欢迎下载精品学习资源2/ 4ifsi=' '> 的值是 【 】 ;【9】 ;欢迎下载精品学习资源表示回车符表示空格;3. 当执行下述e程lse序if段w,or从d=键=0盘>上输入hellojack.<CR> 后输出为 【3】 ;欢迎下载精品学习资源注: <CR>,【10】;num+;欢迎下载精品学习资源chapr rain2tf0"%; sdc"a,nufm"%>s;",a> putsa>4三.如、读i为程整序型写变量结,果就循<环每语句题 2 f分or,i=0;共i=02;0> p分rin)tf"%d",-i>的执行结1. 果如是系统为 【in4t】型支配; 2 个字节5. 下v面oi程d m序a对in从>键盘输入的两个串进行比较,输出两个串中第一个不相同字符的AS CunIIs值ign之ed差in;t 请x=将0x程FF序F补F;充完整; vopidrinmtfai"n%>d",x> 2. voidchmaar ian2>0,b20,c; initnit=i0=,1s,;j; char ch='F' gej=ts.cah>&&gei+ts+;b>欢迎下载精品学习资源whpirlientfa"ii=%=db,ji=>%&d&3. vopidrinmtfai"n%>dn", n",i,aj>i;.= 【6】> 【5】>> i+;欢迎下载精品学习资源6. 下面 in程t 序x,y的; 功能是调用find函数查找某个串中是否包含指定的字符;如找到显示找fo到rx的=第1,y一=2个; 匹y<配=2字0;符y+的+>下标;如输入 i字fx符>=串1为0>:breahke;llo ,查找字符为 l ,就输出: position=2请补充程序;#incilfudx%e<2s=td=i1o>.h x+=5; co>ntinue; charx*-f=in3d; char *s, char c> wphriinletf*"s%.=d' ,%d",y,x>0;'>欢迎下载精品学习资源4. voidifm*sa=i=nc> inst+a+;3,i,j,k; fori=0;i<3;i+> ai=0; rke=tu2r;n NULL; vofoidrmi=a0i;ni<>k;i+>【7】;欢迎下载精品学习资源 chfoarrja=08;0j<,kc;hj+,*+p> aj=ai+1;gperitnstfa">%; sdcanf"%nc"",a&c1h>>5. voidp=sfwinadpai,ncth*>x;,int *y>ifinpt=*=t;NULL> pritn=txf;"xn=oyf;inyd=.t; n">欢迎下载精品学习资源veolside mpariinf>"position=%dn", int a=3,b=4;【8】 >欢迎下载精品学习资源7. 下面sw程a序p的&a功,&能b>是;统计从键盘输入的一行英文中的单词个数,单词之间用空格分欢迎下载精品学习资源隔;pr请int补f"充a=程%序d,b;=%d",a,b>3 / 6欢迎下载精品学习资源第 4 页6. int a=1;void fun2> static int c=6; a=c+;printf"a=%d,c=%dn",a,c>void main>fun2> fun2>7. #define N 3#define Yn> N+1>*n> void main> int s; s=2*N+Y5+1>>printf"s=%d",s>8. #include <stdio.h> void fchar *,int> void main>char a210="China","America",*p2;p0=&a00;p1=&a10; fp,2>void fchar *p,int n> int i; fori=0;i<n;i+> puts*p+i>>9. int fun1int x,int y> return x+y;void main>int a=5,b=8,s; int *p>int,int> p=fun1; s=*p>a,b> printf"s=%d",s>10. struct S int x; char n10; void main> struct S a=1, "fox" ; printf"%d,%s",a.x,a.n>4 / 6欢迎下载精品学习资源运算四、编程题 <分C值程依序次设为计6答、案7、A8、9 分,共200380.1分2 )1. 编写程序运算下面分段函数的值并输出;注:x 和 y都是整型, x通过键盘输考试说明 :本课程为闭卷考试,可携带书写与修正文具,满分为:100 分;入;x+10 x<0>3x+5题号一二三四总分y =0x<15>2x-10 x15>2. 编写得程分序,将键盘输入的一个long型整数逆序构成一个新整数输出;如输入654321,输出 123456<假设其逆序数值也在long 范畴之内);一3.、编单写选程题序实<每现如题下2功分能:,共 30 分) <请将所选答案涂黑 如 A B C D )<1)输入一个 3 阶方阵,1 <A2)B分C别D求出2并输出该方A阵B两C条对D 角3线上元素A之和B ;C D4 A B C D欢迎下载精品学习资源5 例A如B如C下D3 阶6 方阵的两A条对B 角C线D之和7 分别为 A B15C和D 158; A B C D欢迎下载精品学习资源欢迎下载精品学习资源91 A B 2C D103 A B C D 11 A B C D12 A B C D欢迎下载精品学习资源134 A B5C D164 A B C D 15 A B C D789二4 、下填面空程题序的<功每能空是2从分多个,字共符串20中分寻)找最注长意串题输号出与;空请格根号据不给一出致的,主以函空数格内编容号补为准充 find函数的函数声明和函数定义;欢迎下载精品学习资源#include <stdio.h>【1】 unsigned int #include <string.h>/*find函数声明 */【2】3.5【3】hello 欢迎下载精品学习资源【 4v】oid main> -1【 5 】 0 【 6 】ai-欢迎下载精品学习资源bi char a620;int i,row; fori=0;i<6;i+> getsai> row=finda,6>欢迎下载精品学习资源【 7 】printf"lonrgeetusrtnstringsis:%s,a【t ro8w】%d.n",apr-oaw,row> word=1 /*find函数定义 */【 9 】 word=0 【 10 】欢迎下载精品学习资源三答、案请读答程于序答写题结卡上果,<答每题题卡上2请分写,清共楚考2生0个分人)信息与任课老师、选课时间;任课老师按答题卡评分;欢迎下载精品学习资源1考. 试终止-1后请将答题2 .卡与试i卷=1,j=0分开3上. 交7,10 ;4.3欢迎下载精品学习资源欢迎下载精品学习资源5.a=3,b=46.a=6,c=7 a=7,c=87.s=48欢迎下载精品学习资源欢迎下载精品学习资源8.China America9.s=1310.1,fox欢迎下载精品学习资源四、编程题 <分值依次为 6、7、8、9 分,共 30 分)5 / 6欢迎下载精品学习资源申明:全部资料为本人收集整理,仅限个人学习使用,勿做商业用途;6 / 6欢迎下载