2021年大连某交通大学C语言专升本测试卷(十二套试卷)及答案.pdf
C语言专升本测试卷(一)(总 分100分,考试时长9 0分钟)一、单项选择题(每小题2分,共 4 0分)1、若程序中有宏定义行:#de f i ne N 100,则 以 下 叙 述 中 正 确 的 是。A、宏定义行中定义了标识符N的值为整数100B、在编译程序对C 源程序进行预处理时用100替换标识符NC、对 C 源程序进行编译时用100替换标识符ND、在运行时用100替换标识符N2、有如下程序段i nt*p,a=l,b=2;p=&b;a=*p+a;执行该程序段后,a的值为A、2B、3C、4D、编译出错3、下列赋值语句错误的是 oA、AB、i=0;C、i=i+l:D、i+=l:4、有以下程序m a i n()i nt i;f or(i=0;i m a i nO(f l oa t f un(i nt i,i nt j);.x=f un(i,j);.f l oa t f un(i ntA,i ntb)7、能正确表示逻辑关系a =10或 a V=0 的c 语 言 表 达 式 是。A、a =10ora=10B、a =01 a =10&a =10|a=08、已知3 个字符为:a、z 和 8,按它们的a sc i i 码值升序排序,结果是。A、8,a,ZB、a,8,ZC、a,Z,8D、8,Z,a9、程序必须在有限的步骤、有限的时间内执行完毕,指的是算法的()特点A、确定性B、有穷性C、可行性D、输入10、下面关于编译预处理命令,正确的是 OA、#de f i ne c h a r C H A RB、#D e f i ne E 0.000003 4C、#de f i ne F A L SE 0D、#de f i ne D I M 2 6Ik 设 i nt a 10,*p=a;数组元素a 4 的 正 确 引 用 是。A、*(p+4)B、p+4C、*p+4D、a+412、关于strc m pO 函数,下 列 描 述 中 错 误 的 是。A、strc m p。函数用于比较两个字符串的内容是否相等B、如果两个字符串的内容相同,strc m pO 函数返回0C、strc m p。函数是可变参数的函数D、strc m pO 函数只能接收字符指针作为参数,并不接收单个字符13、对于存储同样一组数据元素而言,oA、顺序结构比链接结构多占存储空间B、顺序结构与链接结构相比,更有利于对元素的插入、删除运算C、顺序结构比链接结构易于扩充空间D、顺序结构占用整块空间而链接结构不要求整块空间14、下列说法正确的是 oA、m a i n函数必须放在C 程序的最后面B、m a i n函数必须放在C 程序的最前面C、m a i n 函数可以放在C 程序的中间部分,但在执行C 程序时是从程序开头执行的D、m a i n 函数可以放在C 程序的中间部分,但在执行C 程序时是从m a i n 函数开始的15、下 列 程 序 的 输 出 结 果 是-c h a r *p l=a b c d”,*p 2=a b c d ,s t r 50=xyz;s t r c p y(s t r+2,s t r c a t(p l+2,p 2+l);p r i n t f(%s”,s t r);A、xya b c ABB、a b c ABzC、ABa b c zD、xyc d BCD16、下 面 程 序 段 的 输 出 结 果 是.x=3;d oy=x;i f (!y)(p r i n t f(*);c o n t i n ue;)p r i n t f(#);)wh i l e(x=2);A、#B、#*C、死循环D、输出错误信息17、设有以下说明语句:t yp e d e f s t r uc t s t u(i n t a;f l o a t b;s t ut yp e;则下面叙述中错误的是 oA、s t r uc t 是结构类型的关键字B、s t r uc t s t u是用户定义的结构类型C、a 和 b 都是结构成员名D、s t ut yp e 是用户定义的结构体变量名18、下面程序的输出是#i n c l ud e vo i d m a i n()(i n t k=l l;p r i n t f (zzk=%d,k=%o,k=%x n”,k,k,k);)A、k=l l,k=12,k=l lB、k=l l,k=13,k=13C、k=l l,k=013,k=0 xbD、k=l l,k=13,k=b19、下列关于字符串的说法中错误的是 oA、在C 语言中,字符串是借助于字符型一维数组来存放的,并规定以字符 0作为字符串结束标志B、0作为标志占用存储空间,计入串的实际长度C、在表示字符串常量的时候不需要人为在其末尾加入0D、在 C 语言中,字符串常量隐含处理成以 0结尾20、有以下程序S i n c l ud e t t i n c l ud e s t r uc t ai n t a;c h a r b 10;d o ub l e c;);vo i d f(s t r uc t a t);m a i n O(s t r uc t a a=1001,H zh a n g d a M,1098.0;f (a);p r i n g t (n%d,%s,%6.l f n n,a.a,a.b,a.c);)vo i d f (s t r uc t a t)(t.a=1002;s t r c p y(t.b,c h a n g r o n g );t.c=1202.0;)程序运行后的输出结果是 oA 1001,Z h a n g Da,1098.0B、1002,Ch a n g R o n g,1202.0C、1001,Ch a n g R o n g,1098.0D、1002,Z h a n g Da,1202.0二、判断题(每小题2 分,共 20分)()1、若有定义i n t x=1,y=2;则表达式x=y是将y 的值赋值给x。()()2、函数若无返回值,则它一定无形参。()3、函数的实参传递到形参有两种方式:值传递和地址传递。()4、在循环中使用b r e a k 语句或者c o n t i n ue 语句,其作用是相同的。()5、字符串常量是由一对双引号括起来的字符序列。()6、当多个函数发生多层嵌套调用时,最后被调用的函数却最先结束。()7、用字符串常量给数组赋初值时,如果提供的字符个数大于数组长度,则系统报错。()8、c 语言中siz e o f是函数,而不是运算符。()9、符号a和 a 的 区 别 是 a 是字符串常量,占2 个字节;而a 是字符常量,占1个字节。()()10、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容:#include 或#includegraphics.h。三、编程题(每小题分,共 40分)1、编写程序:从键盘上输入a 与 n 的值,计算sum=a+aa+aaa+aaaa+.(共 n项)的和。例 a=2,n=4,则 sum=2+22+222+2222。(本题 10 分)2、编写程序:计算sum=lT/3+l/5T/7+1/19(本题14分)3、统计结构体数组中性别(sex)为M 的变量的个数。要求:数组元素依次赋初值为:1,Andy,M 、2,Mike,F 、3,Rose,M 。结构体定义如下:struct Student int num;char name30;char sex;(本题16分)参考答案一、单项选择题1、B2、B3、B4、A【解析】当执行switch语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的case标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和 default后的语句,直到switch语句体结束。5、D【解析】主要考查的知识点为自定义标识符。要点透析A项以数字开头,B项为保留字,C项含有非字母、数字、下划线的字符,只有D项是正确的。6、A7、D【解析】在 C语言中,逻辑运算符有与&、或|、非!,关系运算符有大于、小 于 V、大于等于=、小于等于=、等于=,根据逻辑关系很容易看出,符合条件的选项为D。8、D【解析】在ASCH码袁中,根据码值由小到大的排列顺序是:控制符、数字符、大写英文字母、小写英文字母。9、B10、D【解析】无参宏定义的一般格式:#define标识符语言符号字符串,其中:“define”为宏定义命令;标识符为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言符号字符串”可以是常数、表达式、格式串(格式串是用双引号括起来的字符串)等,选 项 A B C 错误,选 项 D 正确;本题答案为D oIk A12、C【解析】strcmp。函数的参数是两个字符串13、D【解析】顺序结构的存储空间就是存放数据信息的空间,不需要附加空间,而链接结构节点(即元素)的存储空间包括两部分:一部分存放数据信息,一部分存放指针信息,因此A选项是错误的:在顺序结构中,要插入、删除元素需移动其他元素;而在链接结构中,插入、删除元素不需要移动其他元素。因此,选择项B是错误的;顺序结构中,存储空间必须事先定义,在运算过程中难以扩充:链接结构中,元素之间通过指针链接,空间易于扩充。因此选择项C 也是错误的;顺序结构中,元素之间的关系通过存储单元的邻接关系来表示,其存储空间必须占用整块空间:链接结构中,节点之间的关系通过指针来表示,不要求整块空间。因此,D 是正确答案。1 4、D【解析】每个C 程序有且只有一个主函数(m a i n),且程序必须从main()函数开始执行。别外ma in()函数可以放在程序中的任意位置。15、D16、C17、C18、D19、B【解析】0作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。2 0、A二、判断题1、错误2、错误3、正确4、错误5、正确6、正确7、正确8、错误9、正确10、错误三、编程题1、ttinc lude stdio.h main()(int a,n c o unt=l,sn=O,tn=O;sc anf(,%d%d,&a,&n);while(c o unt=n)(tn=tn+a;sn=sn+tn;a=a*10;+c o unt;printf(%d,sn);)2、#inc ludemainO(int i;flo at sum=0,k=-l;fo r(i=l;i=19;i=i+2)(sum=sum+L 0/i*k;k=-k;)printf(zz%f,z,sum);getc hO ;)3、#inc ludestruc t S tudent int num;c har name 3 0;c har sex;);int F un(struc t S tudent*s,int n)int num=0;int i;fo r(i=0;i n;i+)(if(s i.sex=M)(num+;)int main()struc t S tudent s 3 =1,A ndy,M,2,M ike,F,3,R o se,M;printf(d,F un(s,3);return 0;C语言专升本测试卷(二)(总 分100分,考试时长9 0分钟)一、单项选择题(每小题2分,共 4 0分)1、下面程序段的功能是#inc lude main()(c har si;sl=putc (getc(stdin),stdo ut);)A、从键盘输入一个字符给字符变量siB、从键盘输入一个字符,然后再输出到屏幕C、从键盘输入一个字符,然后在输出到屏幕的同时赋给变量siD、在屏幕上输出stdo ut的值2、在 c中,合法的字符常量是。A、08 4 B、x4 3 C、ahD、“0”3、现有定义int a;do ub le b;flo at c;c har k;则表达式a/b+c-k值的类型为A、intB、do ub leC、flo atD、c har4、设 a、b、c、d、m、n 均为 int 型变量,且 a=5、b=6 c=7、d=8、m=2、n=3 则逻辑表达式(11=2 13)&(11=1)运算后,n 的值为 oA、0B、1C、2D、35、以下程序中,while循环的循环次数是main()int i=0;while(i 10)if(i l)c o ntinue;if(i=5)b reak;i+;)A、1B、10C、6D、死循环,不能确定次数6、有以下程序:fun(int x,int y)(static int m=0,i=2;i+=m+l;m=i+x+y;return m;)main()(int j=l,m=l,k;k=fun(j,m);printf(%d,k);k=fun(j,m);printf(%d n,k);)执行后的输出结果是 oA、5,5B、5,11C、11,11D、11,57、下列选项中不会引起二义性的宏定义是 oA#define S(x)X*xB、#define S(x)(x)*(x)C、#define S(x)(x*x)D、#define S(x)(x)*(x)8、有数组:c har a =this is an egg;。请问该数组到底占了几个字节?A、11B、12C、14D、159、以下选项中,当x 为大于1 的奇数时,值为0 的表达式是 oA、x%2=lB、x/2C、x%2!=0D、x%2=010、执行下列程序时输入:12 3 空格4 5 6 空格7 8 9 V回车,输出结果是main()(c har s 100;int c,i;sc anf(枇,&c);s ca n f&i);s ca n f s);printf(/z%c,%d,%s n,z,c,i,s);)A、1,4 5 6,7 8 9B、1,2 3,4 5 6C、1,2 3,4 5 6,7 8 9D、12 3,4 5 6,7 8 911、以下叙述中正确的是 oA、字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组B、c har c a 3 4 =A ,B B,C C C;是不合语法的C、c har c a 5 =A,B B,C C C;是不合语法的D、c har*c a 3 =A,B B ,“C C C;是不合语法的12、以下程序中函数f 的功能是将n 个字符串,按由大到小的顺序进行排序。#inc lude vo id f(c har p 10,int n)(c har t 2 0;int i,j;fo r(i=0;i n-l;i+)fo r(j=i+l;j n;j+)if(strc mp(p i,p j)0)strc py(t,p i);strc py(p i,p j);strc py(p j,t);)main()(c har p 10 =ab c,aab dfg,ab b d,dc db e,c d;f(p,5);printf(%d n,strlen(p 0);)程 序 运 行 后 的 输 出 结 果 是。A、6B、4C、5D、313、运行以下程序后,如果从键盘上输入c h i n aA、2,0B、5,0C、5,5D、2,51 4、有如下程序段i n t *p,a=6,b=2;p=&a;a=*p+b;执行该程序段后,a的值为A、6B、8C、7D、编译出错1 5、有以下程序:#i n c l u d e ma i n ()(c h a r c l=,1 ,c 2=,2;c l=g e t c h a r ();c 2=g e t c h a r();p u t c h a r(c l);p u t c h a r (c 2);)当程序运行时输入a V 回车后,下列叙述中正确的是A、变量c l 被赋予字符a,c 2 被赋予回车符B、程序将等待用户输入第2 个字符C、变量c l 被赋予字符a,c 2 中仍是原有字符2D、变量c l 被赋予字符a,c 2 中将无确定值1 6、下 面 程 序 段 的 运 行 结 果 是.f o r (i=l;i=5;)printfi);i+;A、1 2 3 4 5B、1 2 3 4C、1 5D、无限循环1 7、若有以下说明语句:s t r u c t d a t e(i n t y e a r;i n t mo n t h;i n t d a y;b r i t h d a y;则 下 面 的 叙 述 不 正 确 的 是.A、s t r u c t 是声明结构体类型时用的关键字B、s t r u c t d a t e 是用户定义的结构体类型名C、b r i t h d a y 是用户定义的结构体类型名D、y e a r,d a y 都是结构体成员名1 8、下列程序段输出结果是 oa=l;b=1 0;d o(b-=a:a+;)wh i l e(b c h a r s 2 3 =”x y z”;C、c h a r s 3 口 3 =a ,x ,y D、c h a r s 3 3 =x y z ,mn p ;2 0、若有定义:s t r u c t ke y wo r dc h a r ke y 2 0 ;i n t i d;)kw =vo i d,1,c h a r,2,i n t”,3,f l o a t”,4,d o u b l e”,5 ;则 p r i n t f(%c,%d n”,kw 3 .ke y 0 ,kw 3 .i d);语句的输出结果为 oA、i 3B n 3C,f 4D、1 4二、判断题(每小题2分,共 2 0 分)()1、如果在共用体中有若干个不同类型的成员,在每一瞬间只有一个成员起作用,实际上是最后一个存放成员起作用。()2、在同一种类型中,变量值越大,它所占内存的字节数越多。()()3、指针数组的每一个元素都是指针变量,且都指向相同的数据类型。()4在循环过程中,使用b r e a k语句和c o n t i n u e 语句的作用是一样的()5、字符串可以存储在字符数组中,也可以存储在字符型指针变量中()6、函数定义在先、调用在后时,vc+允许省略函数声明。()7、如果指针变量p已指向数组中的一个元素,则 p+1 指向同一数组中的下一个元素。()8、在标准c 语言中,所有函数在调用之前都要进行声明。()9、在标准c 语言中,函数的定义和调用一样都是不可以嵌套的。()1 0、若不希望其他源文件引用本文件中定义的全局变量,可在定义全局变量时加上s t a t i c o三、编程题(每小题分,共 4 0 分)1、编程计算 1*2*3+3*4*5+5*6*7+.+99*1 0 0*1 0 1 的值。(本题 1 0 分)2、编写程序输入三位数(1 0 0 999),然后按数字逆序输出。(例:输入1 2 3/,输出3 2 1)0(本题1 4 分)3、题目描述完成一个对候选人得票的统计程序。假设有3 个候选人,名字分别为Li,Z h a n g 和Fun。使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。结构体可以定义成如下的格式:s tr uc t p e r s o n c h a r n a m e 2 0 ;i n t c o un t;He a d e r 3 =“Li”,0,“Z h a n g”,0,“Fun”,0 ;输入第一行有一个整数n,表示以下有n张选票信息将会输入。保证n 不大于1 0 0。以后的n 行中,每一行包含一个人名,为选票的得票人。保证每一个人名都是Li,Z h a n g 和 Fun 中的某一个。输出有三行,分别为Li,Z h a n g 和 Fun 每人的得票数。格式为首先输出人名,其后输出一个冒号,最后输出候选人的得票数。请注意行尾输出换行。样例输入1 0LiLiFunZ h a n gZ h a n gFunLiFunZ h a n gLi样例输出Li:4Z h a n g:3Fun:3 (本题1 6 分)参考答案一、单项选择题1、C2、B3、B【解析】双目运算中两边运算量类型转换规律:在 a/b 的时候,a、b的类型不一致,根据类型转换规则,把整型转换成d o ub l e 类型,之后的加、减类似。转化规则为 c h a r,s h o r t-i n t-un s i g n e d-1 o n g-d o ub l e*-f l o a to4、D5、D6、B【解析】本题的f un()函数中定义的变量m 和 i 是静态局部变量,第 1 次调用f un()函数时m=0、i=2,执行i+=m+l 后,i 的值变为3,再执行m=i+x+y后,m的值变为5,所以第1 次输出的整数是5。第 2次调用f un()函数时m=5、i=3,执行i+初+1,i 变为9,再执行m=i+x+y,口变为1 1,所以第2 次输出的整数是1 1。故本题应该选择B。7、D8、D9、D【解析】因为x的值为大于1 的奇数,所 以 x 除以2的余数等于1,因此,选项 A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。1 0、B【解析】第一个输入语句只接收一个字符 1 ;第二个输入语句接收一个整数2 3,遇到空格停止;第三个输入语句接收一个字符串4 5 6 ,遇到空格停止。1 1、A【解析】本题考查字符串数组的相关知识,选 项 B C D 都是合语法的。1 2、C1 3、C【解析】输 入“c”时,运行d e f a ul t和 c a s e 0 的代码;输入“h”时,运行c a s e h 、d e f a ul t 和 c a s e 0 的代码;输入 i 时,运行 d e f a ul t 和 c a s e 0 的代码;输入“n”时,运行d e f a ul t和 c a s e 0 的代码;输入“a”时,运行 c a s e a 、c a s e h 、d e f a ul t 和 c a s e O 的代码。1 4、B1 5、A1 6、D1 7、C1 8、B1 9、A【解析】BCD选项都不合字符数组的定义。2 0、C【解析】k w 3 .Ke y 0 是第4 个元素中k e y数组的第1 个字符即f;k w 3 .ID是第4个元素中成员ID值;二、判断题1、正确2、错误3、正确4、错误5、错误6、正确7、正确8、错误9、错误1 0、正确三、编程题1、#i n c l ud ev o i d m a i n()(i n t i,s um=0;f o r(i=l;i=9 9;i=i+2)s u m=s u m+i*(i+l)*(i+2);p r in t f(%d n,s u m);)2、#in c l u d e v o id m a in()in t n,g e,s h i,b a i;p r in t f (请输入一个三位正整数:”);scanf&n);if(n 9 9 9)p r in t f (输入数据有误!n);e l s e g e=n%1 0;s h i=n/1 0%1 0;b a i=n/1 0 0;p r in t f (此数的逆序输出结果为:%d%d%d n/z,g e,s h i,b a i);)3、#in c l u d e#in c l u d e s t r u c t p e r s o n c h a r n a m e 20 ;in t c o u n t;l e a d e r 3 =Li,0,Z h a n g”,0,Fu n,0);in t m a in O in t i,j,n;c h a r l e a d e r _ n a m e 20 ;s c a n f(d,&n);f o r(i=1;i=n;i+)s c a n f (,z%s,z,l e a d e r _ n a m e);f o r(j =0;j 3;j+)if(s t r c m p(l e a d e r _ n a m e,l e a d e r j .n a m e)=0)l e a d e r j .c o u n t+;f o r (i=0;i 3;i+)p r in t f(%s:%d n,l e a d e r i.n a m e,l e a d e r i.c o u n t);r e t u r n O;C语言专升本测试卷(三)(总分100分,考试时长90分钟)一、单项选择题(每小题2 分,共 40 分)1、下列选项中,不能正确定义c 语言整型常量是?A、3 2LB、51 0 0 0C、-1.2D、5672、表示关系xV=yV=z的c 语言表达式为 oA、(x=y)&(y=z)B、(x=y)a n d(y=z)C、(x=y=z)D、(x=y)&(y x3=0 xl 2;D、x4=1+2=3;1 4、定义如下变量和数组:in t i,x 3 定义1,2,3,4,5,6,7,8,9;则下面语句 f o r(i=0;i a)|(m=a b);/短路问题 p r in t f (线d,%d n”,k,m);)程 序 运 行 后 的 输 出 结 果 是。A、0,0B、0,1C、1,0D、1,11 6、有如下程序m a in()in t x=3;d o(pri ntfx 一);)wh il e (!x);)该程序的执行结果是 oA、3 21B、3C、不输出任何内容D、陷入死循环1 7、定义共用体的关键字是 0A、u n io nB、e n u mC、s t r u c tD、t yp e d e f1 8、下 述 程 序 段 的 运 行 结 果 是。m a in()(s t a t ic in t a 3 3 =1,2,3,4,5,6,7,8,9;in t b 3 2,i,j;f o r (i=0;i3;i+)f o r(j=0;j 120、以下叙述中正确的是 oA、使 用t yp e d e f定义新类型名后,新类型名与原类型名实际上是等价的B、结构体类型中的各个成分均不能是数组或指针C、结构体类型的变量,不能在声明结构体类型组成时一起定义D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义二、判断题(每小题2分,共2 0分)()1、模运算符先仅用于整型变量或整型常量。()2、将i n t型变量x转换为f l oat型应:f l oat (x);()3、函数返回值的类型是由在定义函数时所指定的函数类型()4、w h i l e 语句的一般形式如下,当表达式的值为 真 时,循环执行,直到表达式的值为假”,循环中止并继续执行w h i l e 的下一条语句。()5、使用s t r cp y (字符数组,字符串)函数时,字符数组长度必须足够大。()6、c 程序是从函数开始执行的。()7、二维数组元素在内存中的存放顺序是按列主顺序存放()8,当函数的实参与形参同名时,它们将共占内存单元。()()9、在标准c 语言中,使用函数s t r cp y 时可以将 0 一起复制到目标串中()1 0、在一个文件中定义的全局变量其作用域还可以扩展到其他文件。三、编程题(每小题 分,共 4 0 分)1、编写程序:判断输入字符的字母的个数,以*结束输出。(本题1 0 分)2、输出9*9 乘法表。(本题1 4 分)3、计算n名学生成绩的平均分并通过函数返回。要求:结构体代码如下:s t r uct S t ude n t S cor e doubl e s cor e;(本题1 6 分)参考答案一、单项选择题1、C2、A【解析】C语言中没有关键词a n d,逻辑与运算符是&,不是a n d,因此,选项B是错误的;而&是 c 语言的按位与运算,因此选项D是错误的:选项C是数学表达式,也是不对的。3、D4、A【解析】本题考查i f 表达式。if(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(=)误写为赋值号(=)时不会报错的,但是其值恒为1。5、B6、A7、B8、D9、D10、A【解析】C语言的字符常量是用单引号C)括起来的一个字符,也可以用以一个“”开头的字符序列来表示字符常量。其中形式ddd表示1 到 3 位 8 进制数所代表的字符;形式xhh表示1到2 位 16进制数所代表的字符。在本题中x l3 表示回车符,是一个字符常量;而081用 8 进制数所代表的字符形式不正确,因为8 进制数所表示的字符中不会出现数字“8;65单引号(即撇号)括起来的不是一个字符,而是一个十进制数字;是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。11、B12、C13、C14、C15、C16、B【解析】本题x 赋初值为3,当执行printf(级d”,x-);时,由于x-的作用是先运算x,再将x 的值减1,所以,p rin tf输出的x 值为3,等输出后,x 的值减1变为2,继续执行,判断条件!x 为假,循环只被执行一次。17、A18、B19、A2 0、A【解析】本题考查t y p e d e f 的使用方法,t y p e d e f 对已存在的类型使用一个新的名字,结构体类型中的成分可以是数组和指针,所 以 B选项错误,结构体类型的变量可以在声明结构体的时候一起定义,C选项错误,D选项中可以一起定义。二、判断题1、正确2、错误3、正确4、正确5、正确6、正确7、错误8、错误9、正确1 0、正确三、编程题1、#i n c l u d e m a i n()c h a r c h;i n t i=0;c h=g e t c h a r();w h i l e(c h!=,*)i f (c h=,a&ch=a&c h=,z )(i+;c h=g e t c h a r();)p ri n t f(%d n ,i);)2、t t i n c l u d e v o i d m a i n ()(i n t i=l;f o r(i;i =9;i+)(i n t j=l;f o r(j;j =i;j+)p ri n t f C%d*%d=%d,z,i,j,i*j);)p ri n t f (n );)3、d o u b l e F u n (s t ru c t St u d e n t Sc o re *a ,i n t n)i n t i;d o u b l e s u m =0.0;f o r(i=0;i n;i+)s u m +=a i .s c o re;)re t u rn s u m/n;)i n t m a i n()(s t ru c t St u d e n t Sc o re a 1 0 0 ;i n t n;学生数量i n t i;p ri n t f (“请输入学生数量:”);s c a n f (级d”,&n);f o r(i=0;i D,+2、下列()是合法标识符。A、_ b o o kB、5 f i l e sC、+s t a t i cD、-3.1 4 1 5 93、以下选项中属于c 语言数据类型的是 oA、复数型B、逻辑型C、双精度型D、集合型4、有如下程序m a i n()i n t x=l,a=5,b=5;s w i t c h(x)(c a s e 0:b 一 一;c a s e 1:a;c a s e 2:a 一 一;b 一;)p ri n t f (a=%d,b 二%d n ,a,b);)该程序的输出结果是 oA、a=3,b=4B、a 3,b=3C a=4,b=5D a=4,b=45、下列f o r循环语句的执行次数是 of o r(i n t x=0,y=0;(y!=0)&(x 4);x+)A、无限次B、一次也不执行C、执行一次D、执行三次6、c 语言源程序的基本单位是 oA、过程B、函数C、子程序D、标识符7、运行下面程序后,输出是.Si n c l u d e v o i d m a i n()(i n t k=-3;i f (k c h a r s t r5 =,o ,o ,d ;1 1、若二维数组a 有m行n歹 1,则下面能够正确引用元素a i j 的为A、*(a+j*n+i)B、*(a+i*n+j)C、*(*(a+i)+j)D、*(*a+i)+j12、已定义以下函数i n t f u n(i n t *p)(r et u r n *p;)则 f u n 函数返回值足A、不确定的值B、一个整数C、形参p中存放的值D、形参p的地址值13、设 c语言中,i n t 类型数据占2个字节,则 l on g 类型数据占一A、1 个字节B、2个字节C、4个字节D、8个字节14、有以下函数 i n t f u n (c h a r *s)c h a r *t=s;w h i l e(*t+);r et u r n(t-s);)该函数的功能是 OA、比较两个字符串的大小B、计算S 所指字符串占用内存字节的个数C、计算S 所指字符串的长度D、将 S 所指字符串复制到字符串t中15、以下程序运行后的输出结果是m a i n()c h a r c;i n t n=100;f l oa t f=10;d ou b l e x;x=f*=n/=(c=5 0);p r i n t f C%d n,x);)A、2 2 0.000000B、100,2 0.000000C、2 4 0.000000D、100 4 0.00000016、有以下程序:#i n c l u d em a i n()(i n t x=8;f or (;x 0;x一)i f(x%3)(p r i n t f (z/%d,x一);c on t i n u e;p r i n t f (%d,x);)程序的运行结果是 oA、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,217、在 c 语言中,系统为一个结构体变量分配的内存是A、各成员所需内存量的总和B、结构体第一个成员所需的内存量C、成员中占内存量最大者所需的容量的整数倍D、结构体中最后一个成员所需的内存量18、以下程序的输出结果是 om a i n()(i n t x=3,y=0,z=0;i f (x=y+z)p r i n t f (,*,);el s e p r i n t f C#);A、#B、*C、1D、419、以下对二维数组a的正确说明是A、i n t a 3 B、f l oa t a(3,4)C、d ou b l e a l 4 D、f l oa t a (3)(4)2 0、若有下列说明和语句,则对结构体变量s t 中成员i的引用方式不正确的是s t r u c t s t u(i n t i;i n t n a m e;St,*p;p=&s t;A、s iB、*iC、(*.iD、p-i二、判断题(每小题2分,共 2 0分)()1、c 语言在判断一个表达式是否为真时,以非0 值代表“真,以0 值代表”假()2、在 c 语言的数据类型中,f l oa t 的含义是单精度浮点型,d ou b l e的含义是双精度浮点型。()3、预处理命令不是c语言的组成部分。()4、b r ea k 语句只能用在循环语句中。()5、c 语言约定 0 计入字符串的长度。()6、c 语言规定,函数返回值的类型是由r et u r n 语句中表达式类型所决定的。()()7、一个数组是由连续的一块内存单元组成的,指针变量就是这块连续内存单元的首地址()8、用 s t r c a t (字符串1,字符串2)连接两个字符串函数时,将字符串1后面的 0 取消,只在新串的最后保留一个 0。()9、当函数定义在后、调用在先时,v c+允许省略函数声明。()10、f s eek 函数一般用于文本文件。三、编程题(每小题 分,共 4 0分)1、编写程序,使用循环结构输出下列图形:(本题10分)2、编写程序:删除一个字符串中的指定字母,如:字符串a c a ,删除其中的a字母。(本题14 分)3、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成,数据如下:2 0 1 5 1 3 1 3 5 1 5 7 张 三 9 01)使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上2)将学生中不及格学生的姓名显示出