2022年某大学C语言程序设计专升本测试卷(十二套试卷)及答案.pdf
C语言程序设计专升本测试卷(一)一、单项选择题(每小题2分,共100分)1、下列四个叙述中,错误的是。A、C语言中的关键字必须小写B、C语言中的标识符必须全部由字母组成C、C语言不提供输入输出语句D、C语言中的注释行可以出现在程序的任何位置【答 案】B【解 析】C语 言 规 定 标 识 符 只 能 由 字 母、数 字 和 下 划 线 3种 字 符 组 成,且第一个 字 符 必 须 为 字 母 或 下 划 线。2、设 c h是 c h a r 型 变 量,其 值 为 a,且 有 下 面 的 表 达 式 ch=(ch =a&ch 3)bre ak;A、三次循环B、四次循环C、五次循环D、六次循环【答案】A5、若有说明语句:do ubl e*p,a;则 通 过 scan f 语句正确给输入项读人数据的程序段是A、*p=&a:scan f (%I f ,p);*p=&a;scan f (%f”,p);C、p=&a;scan f (%,*p):D、p=&a;scan f (%I f”,p);【答案】D6,设有以下语句,则 z 的二进制值是ch ar x=3,y=6,z;z=xy 2:A、0 0 0 1 0 1 0 0B、0 0 0 1 1 0 1 1C、0 0 0 1 1 1 0 0D、0 0 0 1 1 0 0 0【答案】B【解析】左移运算符“v v”优 先 级 高 于 二 进 制 按 位 异 或 运 算 符 的 二进制数为0 0 0 0 0 1 1 0,y 2的结果为0 0 0 1 1 0 0 0;x 的二进制数为0 0 0 0 0 0 1 1,x.y的结果为O O O l l O l l o7、定义如下变量和数组:i n t i;i n t x 4 4 =1,2,3,4,5,6,7,8,9,1 0,1 1,1 2,1 3,1 4,1 5,1 6 );则 下 面 语 句 的 输 出 结 果 是.f o r(i=0;i 4;i+)pri n tf (%3 d,x i 3-i );A.1 5 9 1 3B、1 6 1 1 1 6C、4 7 1 0 1 3D、4 8 1 2 1 6【答案】C8、判断闭区间*判断 实 数 x 属于闭 区 间 a,b 的表达式为A、x =a,bB、a =x =bC、a =x&x f o r(i=0;t i =s i ;i+);C、do *t+=*s+;)wh i l e(*s);D、f o r(i=0,j=o;t i+=s j+;);【答案】C1 0、设有定义:i n t =1,加2 3=3;,以下语句中执行效果与其它三个不同的是 oA、i f (a b)c=a,a=b,b=c;B、i f (a b)c=a,a=b,b=c;C、i f (a b)c=a;a=b;b=c;D i f (a b)c=a;a二 b;b=c;【答案】c1 1、下列函数中,能 够 从 键 盘 获 得 一 个 字 符 数 据 的 函 数 是。A、puts()putch ar0C g e tch ar()D、g e tsO【答案】C1 2、若 ch 为 ch ar型变量,k为 i n t型变量(已知字符a的 a sc i i 十进制代码为9 7),则以下程序段的执行结果是_ o c h=a ;k =12;p ri n tf (%x,%o,c h,c h,k);p ri n tf (,zk=%d n/z,k);A、因变量类型与格式描述符的类型不匹配,输出无定值B、输出项与格式描述符个数不符,输出为零值或不定值C 6 1,141,k=%dD、6 1,141,k=%12【答案】C13、在宏定义#d e f i n e PI 3.1415 9 中,用宏名代替一个A、常量B、单精度数C、双精度数D、字符串【答案】D14、若有以下说明和定义f un(i n t*c)()m a i n()(i n t(*a)()=f un,(*b)(),w10,c;)在必要的赋值之后,对f un()函数的正确调用语句是A、a=a(w)B、(*a)(&c)C、b=*b (w);D f un(b);【答案】B15、若有以下程序片段:c h a r str=a b n 012;p ri n tf(%d ,strl e n(str);上 面 程 序 片 段 的 输 出 结 果 是。A、3B、4C、6D、12【答案】C16、以下不构成无限循环的语句或语句组是。A、n=0;d o+n;wh i l e(n =0);B、n=0;wh i l e(l)n+;C、n=10;wh i l e(n);D、f o r(n=0,i=l;i+)n+=i;【答案】A【解析】wh i l e(l),条件永远为真,是无限循环;wh i l e(n);循环体为空语句,是无限循环;f o r循环中两个分号之间为循环执行条件,如果省略,则为条件永远成立,为无限循环;所以答案选择A。17、设vo i d f l (i n t*m,l o n g&n);i n t a;l o n g b;则 以 下 调 用 合 法 的 是 。A、f l (a,b);B、f l(&a,b);C、f l(a,&b);D、f l(&a,&b);【答案】B【解析】如果调用合法,则只有B满足两个参数为指针和引用的条件。18、下面程序的输出结果是一 一。m a i n()(i n t b =(l,2,3,4,5,6,7,8,9,0,*q;q=b;p ri n tf(d n,*(q+0);A、0B、1C、10D、9【答案】B19、下列字符数组长度为5的是 oA、c h a r a 二 h,a,b,c,d ;B、c h a r b =h,a,b,c,d,0;C c h a r c 10=h,,a,,b,,c,,,d,;D、c h a r d 6=h,a,b,c,0 ;【答案】A20、以下结构体类型说明和变量定义中正确的是A ty p e d e f struc ti n t n;c h a r c;RE C;RE C tl,t2;B、strue t RE C;i n t n;c h a r c;RE C tl,t2;C ty p e d e f struc t RE C;i n t n=0;c h a r c=A;tl,t2;RE C tl,t2;D、struc ti n t n;c h a r c;RE C;【答案】A【解析】struc t结构体名后不能加“;”号,所以选项B、C错误,选项D中应为struc t tl,t2;选项A为正确的定义形式.21、运行以下程序后,如果从键盘上输入c h i n aA、2,0B、5,0C、5,5D、2,5【答案】C【解析】输入时,运行d e f a ul t和 c a se 0的代码;输入 h 时,运行c a se h、d e f a ul t f P c a se O的代码;输入 i 时,运行 d e f a ul t 和 c a seO 的 代 码;输 入“n”时,运 行default和case O 的 代 码;输 入“a”时,运行 case a、case h default 和 case O 的 代 码。22、有以下程序:main()(int k=-3:if(kV=O)printf(*n)else printf(&n);程 序 的 输 出 结 果 是。A、输出#B、输出&C、输出#&D、有语法错不能通过编译【答 案】D23、结构化程序设计的三种基本逻辑结构是一A、选择结构,循环结构和嵌套结构B、顺序结构,选择结构和循环结构C、选择结构,循环结构和模块结构D、循环结构,递归结构和循环结构【答 案】B24、设 i 和 x 都是 int 类型,则 for 循 环 语 句。for(i=0,x=0;i&/=B、!/=&C、!/&=D、/&=【答案】B33、指针变量p 进行自加运算(即执行p+;)后,地址偏移值为4,则其数据类型为A、i n tB、f l o a tC d o u b l eD、c h a r【答案】A34、有以下程序s t r u c t s(i n t x,y;d a t a 2 =1 0,1 0 0,2 0,2 0 0 ;m a i n()s t r u c t s *p=d a t a;p r i n t f (%d n”,+(p-x);程序运行后的输出结果是_ _ _ _ _ _ _ _ OA、1 0B、1 1C、2 0D、2 1【答 案】B35、执 行 下 面 程 序 段 后,输出结果是p r i n t f (z z%d nz/,a);i n t a;i n t b=6 5 5 36;a=b;A、6 5 5 36B、0C、-1D、1【答 案】A36、以下循环体的执行次数是#i n c l u d e v o i d m a i n()(i n t i,j;f o r (i=0,j=l;i =j+l;i+=2,j-)p r i n t f (z/%d n ,i);)A、3B、2C、1D、0【答 案】D37、若有说明:i n t i,j=7,*p=&i;则 与 i=j;等价的语句是A i=*p;B、*p=*&j;C、i=&j;D、i=*p;【答案】B38、要输出下面的图形,请完善程序。t f i n c l u d e m a i n()(i n t i,j,k;f o r(i=l;i =5;i+)(f o r(j=l;j 0;k+)p r i n t f (3d ,k);p r i n t f (n );)A、k =ik=iB、k ik=i-lC、k ik=iD、k =ik=i-l【答案】D39、若有说明语句i n t a 5 ,*p=a;,则对数组元素的正确引用是A a p B、p a C *(p+2)D、p+2【答案】C40、设有如下枚举类型定义:e n u m l a n g u a g e(b a s i c=3,a s s e m b l y ,a d a=1 0 0 ,c o b o l ,f o r t r a n;枚 举 量 f o r t r a n 的 值 为。A、4B、7C、1 0 2D、1 0 3【答案】C41、以下关于c/c语言指针变量的叙述中,正确的是A、指针变量可以是全局变量也可以是局部变量B、必须为指针变量与指针所指向的变量分配相同大小的存储空间C、对指针变量进行算术运算是没有意义的D、指针变量必须由动态产生的数据对象来赋值【答案】A【解析】存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。选项A显然是正确的。对于选项B,指针变量和指针所指向的变量存放的内容是不一样的,只要分配够用就行了,不需要分配一样大小的存储空间。对于选项C,指针变量加1便指向下一个存储单元,是有意义的。另外指针变量可以静态地定义。42、有以下程序#defi n e P 3v o i d F(i n t x)(r et u r n(P*x*x);m a i n O(p r i n t f(%dn,F(3+5);)程序运行后的输出结果是一A、192B、29C、25D、编译出错【答案】D43、若 i n t i=10;执行下列程序后,变量i的正确结果是s w i t c h (i)c a s e 0:i+=l;c a s e 10:i+=l;c a s e 11:i+=l;defa u l t:i+=l;)A、10B、11C、12D、13【答 案】D44、以下叙述中正确的是A、N-S 流程图只能描述简单的顺序结构的程序B、程序的算法只能使用流程图来描述C、结构化程序的三种基本结构是循环结构、选择结构、顺序结构D、计算机可以直接处理C语言程序,不必进行任何转换【答 案】C【解 析】N-S流 程 图 是 可 以 描 述 循 环 结 构、选 择 结 构、顺序结构等多种结构的程 序,所 以 A 选 项 错 误。程 序 的 算 法 可 以 用 流 程 图、伪 代 码、N-S结构图等方法 表 示 所 以 B 选 项 错 误。计算机只能处理二进制表示的目标程序不能直接执行由 C 语 言 编 写 的 源 程 序 所 以 D 选 项 错 误。45、如有定义语句i n t a =1,8,2,8,3,8,4,8,5,8;则 数 组 a的大小是.A、10B、11C、8D、不定【答 案】A46、下列关于实型变量书写正确的是 oA、E 3B、2e0.3C、1.2e3D、1.2E 0.3【答 案】C47、若有以下定义,则对a数组元素的正确引用是一 一。i n t a 5,*p=a;A、*&a B、*a+lC、*(p+5)D、*(a+2)【答 案】I)【解 析】本 题 考 查 通 过 指 针 引 用 数 组 元 素.选 项 A)、B),没 有 这 种 引 用 形 式;选 项 C),*(p+5)是 引 用 数 组 的 第 6 个 元 素,而 数 组 一 共 有 5 个 元 素,出现越界:选 项 D),*(a+2)引 用 数 组 的 第 3 个 元 素。48、数 据 的 存 储 结 构 是 指。A、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式1)、数据的逻辑结构在计算机中的表示【答 案】I)【解 析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也 称 数 据 的 物 理 结 构,所 以 选 项 D正 确。49、下列变量定义中,错误的是_oA、i n t x=3;B、fl o a t f;d;C、S t r i n g s 二 Hel l o!;D、b o o l ea n b=t r u e;【答 案】B【解 析】A选 项 定 义 了 一 个 整 型;C选项定义了 一 个 字 符 串;D选项定义了一个布 尔 型 变 量:B选 项 中 的 f;d 不 符 合 标 识 符 规 范,因 而 选 B。50、函数调用语句:fs eek(fp,-201,2);的含义是.。A、将文件位置指针移到距离文件头20个字节处B、将文件位置指针从当前位置向后移动20个字节C、将文件位置指针从文件末尾处退后20个字节D、将文件位置指针移到离当前位置20个字节处【答案】CC语言程序设计专升本测试卷(二)一、单项选择题(每小题2分,共1 0 0分)1、若X是整型变量,p b是类型为整型的指针变量,则正确的赋值表达式是A、p b=&x;B、p b=x;C、*p b=&x;D、*p b二*x【答案】A2、以下不能正确赋值的是 oA、ch ar s i 1 0;s i=t es t”;B、ch ar s 2=t ,e ,s ,t C ch ar s 3 20=t es t;D、ch ar s 4 4=t ,e ,s ,t 【答案】A3、选择出合法的i f语句(设i n t x,a,b,c;)。A、i f(a=b)x+;B、i f(a=b)x+;C、i f(a b)x+;D、i f(a=b)x+;【答案】A【解析】A虽然是赋值语句,但是在逻辑运算中自动将赋值语句的结果当作逻辑值,方法是,如果赋值语句的结果是非零值则当作逻辑真,否则当作逻辑假。C语言中关系运算符有(小于)、(大于)、=(大于等于)、=(小于等于)、=(等于)、!=(不等于)等六种,可见其他的条件表达式中的关系符写错T o4、有以下程序m ai n()i n t i;f o r (i=0;i p l=&p 2D、p l+=5【答案】c7、下面程序段的运行结果是 _。ch ar *f o r m at=,%s,a=%d,b=%d n,z;i n t a=l l,b=1 0;a+=b;p r i n t f (f o r m at,,a+=b/,,a,b);A、f o r,a+二 b”,abB、f o r m at,a+=b C、a+=b,a=21,b=1 0D、以上结果都不对【答 案】c【解 析】字符串常量 是 由 双 引 号 括 起 来 的 一 串 字 符,每一个字符串常量都分别占用内存中一串连续的存储空间,这些连续的存储空间实际上就是字符型一维数 组。8、下列关于siz e of 说法错误的是 oA、siz e of 运算符可以获取某个类型所占字节数B、siz e of 运算符可以获取某个变量所占的字节数C、siz e of 运算符获取某个变量的字节数与该变量的类型有关1)、siz e of 运算符获取某个变量的字节数与该变量的类型无关【答 案】D9、有以下程序v oid f un(ch ar s10,in t n)(ch ar t;in t i,j;f or(i=0;iN-l;I+)f or(j=i+l,j sj 0)t=si0;si0=sj0;sj0=t;)m ain()(ch ar ss510=bcc,bbcc,x y aaaacc,aabccn);f un(ss,5);pr in tf(%s,%s”,ss0,ss4);程 序 运 行 结 果 是。A、x y,aaaaccB、aaaacc,x yC、X C C,aabccD、ace,x abcc【答案】D10、以下能正确计算1 X 2 X 3 X?X1 0 的程序段是。A do(i=l ;s=l;s=s*i;i+;w h il e(i=10);B、do i=l ;s=0;s=s*i;i+;w h il e(i=10);C、i=l;s=l;do s=s*i;i+;w h il e(i=10);D、i=l;s=0;do s=s*i;i+;w h il e(i=10);【答案】C11、以下程序中函数scm p的功能是返回形参指针si和 s2 所指字符串中较小字符串的首地址#in cl ude#in cl ude ch ar *scm p(ch ar *sl,ch ar *s2)(if (str cm p(sl,s2)0)r e tur n (si);e l se r e tur n(s2);m ain()(in t i;ch ar str in g 2 0,str 3 2 0;f or (i=0;i abcD、abca【答 案】B12、计算机中的数有浮点和定点两种表示,浮点表示的数,通常由两部分组成,即。A、指数和基数B、尾数和小数C、阶码和尾数D、整数和小数【答 案】C【解 析】在 计 算 机 中,带 小 数 点 的 数 通 常 有 两 种 表 示 方 法,即定点数和浮点数。所 谓 浮 点 数,是 指 小 数 点 位 置 可 以 浮 动 的 数。一个二进制的浮点数可以用阶 码 和 尾 数 来 表 示。13、关于宏定义命令,叙述正确的是_。A、在程序编译前进行宏替换B、在程序编译时进行宏替换C、在程序编译后进行宏替换D、在程序运行时进行宏替换【答 案】A【解 析】宏 定 义 命 令 的 一 般 格 式 是:#de f in e 宏 名 一 串 符 号,在程序清单中可以 出 现 已 经 定 义 过 的“宏 名”,称 为“宏 调 用”;当对源程序清单进行编译之前,将 把 所 有 的“宏 名”替 换 成 对 应 的“一 串 符 号”,称 为“岩 替 换”。14、有以下程序#in cl ude#de f in e N 4v oid f un(in t a N,in t b)in t i;f or (i=0;iN;i+)bi=ai i-ai N-l-i;)v oid m ain()in t x N N=l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y N,i;f un(x,y);f or (i=0;i in t i;f o r (i=l;i6;i+)B、in t i;f o r (i=0;i5;i+)C、in t i;f o r (i=0;i=5;i+)D、in t i;f o r (i=l;i=5;i+)【答 案】C2 5、下列函数的功能是 o in t f u n l (c h a r *x )(c h a r *y=x ;w h il e (*y+);r e t u r n (y-x-1);)A、求字符串的长度B、比较两个字符串的大小C、将字符串X复制到字符串YD、将字符串X连接到字符串Y后面【答 案】A2 6、表达式k=l*3?2 :0 的值是一。A、3B、2C、1D、0【答 案】B2 7、以下程序段给数组所有元素输入数据:ma inO(int a 1 0 ,i=0;w hile (i c ha r *S ;s c a nf (S”,S );【答 案】c30、c 语言可执行程序从什么地方开始执行?()A、程序中第一条可执行语句B、程序中第一个函数C、程序中的ma in。函数D、包含文件中的第一个函数【答 案】C31、设有如下函数定义:int f(c ha r s )(int i=0;w hile(s i+!=0 );r e t u r n(i-1);)如 果 在 主 程 序 中 用 下 面 的 语 句 调 用 上 述 函 数,则 输 出 结 果 为 一.pr int f(找d n,f (good b e y!);A、3B、6C、8D、9【答 案】C32、若有条件表达式(e x p)a+:b,则以下表达式中能完全等价于表达式(e x p)的是A、(e x p=O)B、(e x p!=O)C、(e x p=l)D (e x p!=l)【答案】B【解析】条件运算符要求有3 个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表 达 式 17表 达 式 2:表达其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2 的值就作为整个条件表达式的值。若表达式1 的值为0(假),则求解表达式3,表达式3 的值就是整个条件表达式的值。并且注意+、一的用法。33、下面程序的输出结果是_ 。ma inO(c ha r *pl=a b c,*p2=a b c,s t r 5 0 =x y z ;s t r c py(s t r+2,s t r c a t(pl,p2);pr int f(%s n,s t r);)A x y z a b c ABCB、z a b c ABCC、x y a b c ABCD、y z a b c ABC【答案】c34、下 面 程 序 的 输 出 结 果 为。s t r u c t s t(int x;int *y;)*p;int d t 4 =1 0,2 0,30,40);s t r u c t s t a a 4 =5 0,&d t O ,6 0,&d t 1 ,7 0,&d t 2 ,8 0,&d t 3 ;v oid ma in()p=a a;pr int f (d ,+p-x);p r i n t f C%d,z,(+p)-x);pr int f (,z%d ,+(*p-y);A、1 0 2 0 2 0B、5 0 6 0 2 1C、5 1 6 0 2 1D、6 0 7 0 31【答案】c【解析】初始化后,a a 0 .x赋值为5 0,a a 0 .y指 向d t 0 ;a a l.x赋值为6 0,a a l.y 指向 d t l ;a a 2 .x 赋值为 7 0,a a 2 .y 指向 d t 2 ;a a 3.x赋值为 8 0,a a 3.y 指向 d t 3。+p-x 是将 a a 0 .x 自增 1,返回 5 1;(+p)-x 返回 a a l.x 的值,即 6 0;+(*p-y)将 a a l.y 指向的 d t 1 的值自增1,返回2 1 o35、下 列 程 序 的 输 出 结 果 是。ma in()(int a=l,b=2;pr int f (,z%d,%d n,-a,+b);A、1,2B、1,3C、0,2D、0,3【答案】D【解析】本题主要考查自加(+)、自减(-)运算符的使用。“+i,-i”在使用i之前,先 使i的值加1或者 减1,然后再使用i此时的值参与运算;“i+,i-”是在使用i参与表达式运算之后,再 使i的值加1或者减1。本题中一a和+b是先执行a减1和b加1操作,再输出表达式的值。36、下面程序的运行结果是一#inc lu d e v oid ma in()(int y=1 0;d ow hile (-y);pr int f(d n,y-);A、-1B、1C、8D、0【答 案】A【解 析】该 题 可 以 使 用 一 个 简 单 的 做 法,要 想 程 序 退 出 循 环,则必一 y的值为0,也 就 是 退 出 循 环 是 y的 值 为 0。37、c语言规定,除主函数外,程序中各函数之间.A、既允许直接递归调用也允许间接递归调用B、不允许直接递归调用也不允许间接递归调用C、允许直接递归调用不允许间接递归调用D、不允许直接递归调用允许间接递归调用【答 案】A38、有以下程序#inc lu d e f t d e f ine PT 3.5;#d e f ine S(x)PT*x*x;ma inO(int a=l,b=2;pr int f(%4.If n,S(a+b);程序运行后输出的结果是A、1 4.0B、31.5C、7.5D、程序有错无输出结果【答 案】D39、下面程序输出数组中的最大值,由 s指针指向该元素.v o i d m a i n ()i n t a 1 0 =6 ,7 ,2 ,9 ,1 ,1 0,5 ,8 ,4 ,3 ,*P,*s ;f o r (p=a ,s=a ;p-a sB、*p*sC、a p a s D、p-a p-s【答案】B4 0、设有以下说明语句:s t r u c t s t u(i n t a;f l o a t b;)s u t t y p e;则 下 面 叙 述 不 正 确 的 是。A、s t r u c t 是结构体类型的关键字B、s t r u c t s t u 是用户定义的结构体类型C、s u t t y p e 是用户定义的结构体类型名D、a和 b 都是结构体成员【答案】B【解析】s tu 是 结 构 体 类 型,s u tty p e 是该类型的变量名4 1、若要求在i f 后一对圆括号中表示a不 等 于 0 的 关 系,则能正确表示这一关系的表达式为.A、a 0B、!aC a=0D、a【答案】D4 2、在 c 语言中(以1 6 位 p c 机为例),五种基本数据类型存储空间长度的排列顺序是A、c h a r i n t l o n g i n t =f l o a t d o u b l eB、c h a r=i n t l o n g i n t =f l o a t c h a r i n t l o n g i n t=f l o a t=d o u b l eD、c h a r=i n t=l o n g i n t =f l o a t b)i f (b c)p r i n t f (%d ,d+1);e l s e p r i n t f (%d ,+d+l);p r i n t f (z z%d n/,,d);)程序运行后的输出结果是 OA、2B、3C、4 3D、44【答 案】A【解 析】本 题 考 查 嵌 套 i f 语 句 中 e l s e 的配对。本 题 中 e l s e 和 第 二 个 i f 即i f(b c)配 对。由 于 a b不 成 立,因 此 整 个 程 序 只 输 出 p r i n t f (%d n,d),即 输 出 2 o4 4、设有声明语句:i n t a=l,b=0;则执行以下语句后输出()s w i t c h (a)(c a s e 1:s w i t c h (b)c a s e 0:p r i n t f(*0*);b r e a k;c a s e 1:p r i n t f(*1*);b r e a k;)c a s e 2:p r i n t f(*2*);b r e a k;)A、*0*B、*0*2*C、*o*i*2*D、有语法错误【答案】B45、函数调用:strcat(strcpy(strl,str2),str3)的功能是。A、将 串 s t r l 复制到串s tr 2 中后再连接到串s tr3 之后B、将 串 s t r l 连接到串s tr2 之后再复制到串s tr3 之后C、将 串 s tr2 连接到串s t r l 之后再将串s t r l 复制到串s tr 3 中D、将串s tr 2 复制到串s t r l 中后再将串s tr3 连接到串s t r l 之后【答案】D46、以下定义语句中正确的是A、int a=b=O;B、char A=65+l,b=b;C、float a=l,*b=&a,*c=&b;D、double a=0.0,b=l.1;【答案】B47、设 char str100;int i=5;则引用数组元素的错误形式的是A strI+10B、*(srr+C、(str+I-1)D、*(&(str+)+【答案】D48、下 列 正 确 的 标 识 符 是。A、_doB 6aC、%yD、a+b【答案】A49、宏定义用于将一个标识符定义为一个A、常量B、字符串C、整数D、长整数【答案】B【解析】宏定义用于将一个标识符定义为一个字符串5 0、对于用r”方式打开文件下列说法正确的是 一。A、用r”方式打开的文件只输入不能输出B、用r”方式打开的文件只能输出,不能输入C、用r 方式可以打开任何文件D、以上均不对【答案】AC语言程序设计专升本测试卷(三)一、单项选择题(每小题2分,共 1 00分)1、已知大写字母a的 a s c i i 码 是 6 5,小写字母a的 a s c i i 码 是 9 7,以下不能将变量c中的大写字母转换为对应小写字母的语句是_ _ _ _ _。A、c=(c,A)%2 6+a B、c=c+3 2C、c=c,A+a,D、c=(A+c)%2 6 a【答案】D【解析】由9 7-6 5=3 2 可知大写字母对应的小写字母之间相差3 2,所以将大写字母加上3 2 就得到小写字母,所以选项B和C 是正确的。选项A 中(c A)%2 6可以求出变量c中的字母与字母A 相差几位,那么小写字母a的ASC H 码向后移动相差的位数就是对应的小写字母,所以选项A 也是正确的。2、与十进制数24 5 等值的二进制数是A、11111110B、11101111C、11111011D、11101110【答案】A【解析】十进制向二进制的转换采用“除二取余”法,本题计算过程如下。*3、与 y=(x 0?l:xV0?-l:0);的功能相同的i f语句是A、i f(x 0)y=l;B、i f(x)el se i f(x 0)y=l;el se y=0;el se i f(x%0)y=-l;el se y=0;C y=-lD、y=0;i f(x)i f(x=0)i f(x 0)y=l;i f(xi =0)y=l;el se i f(x=0)y=0;el se y=-l;el se y=l;【答 案】B4、下面程序的运行结果是 o#i nc l ude m a i nO i nt a=l,b=10;do(b-=a;a+;)wh i l e(b 一 0);pri ntf(a=%d,b=%d n,a,b);)A、a=3,b=l lB、a=2,b=8C a=l,b=-lD、a=4,b=9【答 案】B【解 析】本题考查两个知识点:自 加 自 减 运 算 符 和 do-wh i l e循 环 语 句。do-wh i l e循 环 条 件 是 b V 0,所 以 循 环 体 语 句 只 执 行 一 次。5、以下程序运行后的输出结果是#i nc l ude voi d fun(i nt a,i nt b)i nt t;t=a;a=b;b=t;)m a i n()i nt c 10=l,2,3,4,5,6,7,8,9,0,i;for(i=0;i 10;i+=2)fun(c i ,c i+l );for(i=0;i 10;i+)pri nff(d,,c i );pri ntf(n);A、1,2,3,4,5,6,7,8,9,0B、2,1,4,3,6,5,8,7,0,9C、0,9,8,7,6,5,4,3,2,1D、0,1,2,3,4,5,6,7,8,9【答案】A【解析】fu n 函数无值返回。nain函数调用时数组元素作实参,形参的改变不会影响实参。因此,循环调用结束后,C数组没有任何改变。6、设a为i nt型变量,执行下列赋值语句后,a的取值分别为()a=125.5 3 4;a=20.0/3;a=20%3;a=(i nt)125%5 21%4;a=5 2;A、125,6.6 6 6 6 6 6,2,1,1B、125,6,2,1,1C、125,5 3 4,6.6 6 6 6 6 6,2,1,20D、125,6,2,1,20【答案】D7、下面说明不正确的是 。A、c h a r a 10=c h i na;B、c h a r a 10,*p=a;p=c h i na”C、c h a r*a;a=c h i na”;D、c h a ra 10,*P;P=a二 c h i na”【答案】D【解析】C语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来防问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本 题 D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。8、若已定义:i nt a 9 ,*p=a;并在以后的语句中未改变p的值,不能表示a l 地址的表达式为()。A p+1B、a+1C、a+D、+p【答 案】C9、以下选项中关于c 语言常量的叙述错误的是A、所谓常量,是指在程序运行过程中,其值不能被改变的量B、常量分为整型常量、实型常量、字符常量和字符串常量C、常量可分为数值型常量和非数值常量D、经常被使用的变量可以定义成常量【答 案】D1 0、以下不正确的定义语句是 OA、u n s i g n ed i n t a=-1 0 0 u;l o n g b=0 L;C、s h o r t c2=0 1 2 3;D、i n t d=0 x 0;【答 案】A1 1、c 语言程序的基本单位是.A、程序行B、语句C、函数D、字符【答 案】C1 2、c 语言的编译系统对宏定义的处理是A、在程序连接时进行的B、在程序运行时进行的C、在对源程序中的其它语句进行编译前进行的D、和 C程序中的其它语句同时进行编译的【答 案】C【解 析】所 谓“编 译 预 处 理”就 是 在 C 编 译 程 序 对 C 源 程 序 进 行 编 译 前,由编译 预 处 理 程 序 对 这 些 编 译 预 处 理 命 令 进 行 处 理 的 过 程。宏 定 义 属 于 预 处 理 命 令,在 对 源 程 序 中 的 其 它 语 句 进 行 编 译 前 进 行 的。本 题 答 案 为 C 选 项。1 3、设有如下函数定义:i n t f u n(i n t k)i f(k =0;i-)s u m(&aai);p r i n t f (,z%dnz,,aa0);)执行后的输出结果是_ OA、4B、3C、2D、1【答案】A1 6、若 a 和 b 均是整型变量并已正确赋值,正确的s w i t ch 语句是一A、1 5B、5 0C、5 5D、5【答案】C【解析】仔细观察cas e后的语句,每个都没有用br eak 关键字;在s w i t ch 语句中,是通过br eak 关键字来退出s w i t ch 语句的。而在题目中,cas e 8:k+;后没有br eak,则继续执行k+=2;这时还没有br eak 语句,继续执行,这时的k的值是3 3;一直执行完k+=3;这时k的值是3 6;def au l t 语句是当表达式的值与任一 cas e子句中的值都不匹配时,程序执行def au l t 后面的语句。在题目中,因为在执行完cas e 1 0:k+=3;后还没有br eak,所以要执行k=k/j得k 的值是2。br