湖南理工学院C语言程序设计专升本冲刺卷及答案.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《湖南理工学院C语言程序设计专升本冲刺卷及答案.docx》由会员分享,可在线阅读,更多相关《湖南理工学院C语言程序设计专升本冲刺卷及答案.docx(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、湖南理工学院C语言程序设计专升本冲刺卷(一)考试方式:【闭卷】考试时间:【90分钟】总分:【100分】一、单项选择题(共20题,每题2分,共40分)1、在计算机中,用()位二进制码组成一个字节。A、8B、16C、32D、64.【答案】A【解析】在计算机中,8位二进制码组成一个字节。2、 x=43, ch=a, y=0;那么表达式 x=y& chy);B、 if(x=y) x+=y;C、 if(x!=y) scanf(%d,&x) else x=l;D、 if(x【答案】C4、以下选项中哪些描述是不正确的?A、循环语句必须要有终止条件否那么不能编译B、break关键字用于跳出当前循环C、cont
2、inue用于终止本次循环,执行下一次循环D、switch条件语句中可以使用break【答案】A5、以下表达正确的选项是 oA、函数可以嵌套定义但不能嵌套调用B、函数既可以嵌套调用也可以嵌套定义C、函数既不可以嵌套定义也不可以嵌套调用D、函数可以嵌套调用但不可以嵌套定义【答案】Dint i,k; Favl (s);Fav2(s,w);【答案】1 si=k 2 sum=O. 0 10、以下程序的输出结果是main ()int x=-10, y;if(x0) y=-l;else y=l;printf (%d,y);【答案】-1三、编程题(共3题,共40分)1、编写程序:统计一维数组a中素数的个数例如
3、:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,那么程序的输出应为:prime number (s) is (are)(此题 10 分)【答案】 #include ttinclude #include prinum( int a)int count,i,j,k;count = 0;for ( i=0; i10; i+)(k=ai-l;for ( j=2; j= k+1) count+;return(count);main ()int a10=2,3,5,7,8,9,10,ll,12,13),n; n=prinum(a);printf (,rprime number (s)
4、 is (are) : %d, n ); 2、编写程序:输入两个正整数m和n,求其最大公约数和最小公倍数。(本 题14分)【答案】 #include int main()int a,b,t,r,n;printf (请输入两个数字:n);scanf (r,%d %d ,&a,&b); if (a=b, 令 r=a mod b设a=kc, b=jc,那么k, j互素,否那么c不是最大公约数 据 上,r=a-mb=kc-mjc=(k-mj)c可知r也是c的倍数,且k-mj与j互素,否那么与前述k, j互素矛盾,由此可知,b与r的最大公约数也是c,即gcd(a,b)=gcd(b,a mod b),得证
5、。2)算法描述:第一步:a 4- b,令r为所得余数(Or第二步:互换:置a-b, b-r,并3、假设有以下银行卡信息: struct card(int id;银行卡号int bonus; 金额;请编写程序,从键盘输入5条银行卡记录,使用结构体数组存储这些数据,并按金额升序排序,输出排序后的结果。【输入形式】5条银行卡记录分行输入,每行数据用空格间隔【输出形式】分5行输出数据,每行数据均使用空格间隔【输入样例】1001 201002 801003 501004 101006 40【输出样例】1004 101001 201006 401003 501002 80 (此题 16 分)【答案】 ft
6、include ttinclude struct cardint id;银行卡号int bonus; 金额a5,tamp;int main ()int i, j;for(i =0; i 5; i+)scanf(%d %d, &ai. id, &ai. bonus); for(i =1; i 5; i+)for(j = 0; j aj+l. bonus)(tamp = aj;aj = aj+l; a j+1 = tamp;for(j = 0; j =y&ch b&!y)的值是。A、0B、语法错C、1D、假【答案】C3、假设a是数值类型,那么逻辑表达式(a=l) | | (a!=l)的值是。A、1
7、B、0C、2D、不知道a的值,不能确定【答案】A4、循环语句for(i=l; i0; i+) i+;的循环次数是。A、无限循环B、2次C、1次D、0次【答案】D5、以下表达中错误的选项是 oA、C语句必须以分号结束B、C程序总是从主函数开始执行C、空语句出现在任何位置都不会影响程序运行D、定义语句用分号“;”结束【答案】C6、设a和b均为int型变量,且a=6、b=ll, c=3,那么能使值为3的表达式是OA、b%(c%4)B、 b%(c-a%5)C、 b%a-a%5D、(b%a)- (a%4)【答案】D【解析】选项析括号内的运算分别是b%a=ll%6=5和a%c=6%4=2,最后得到5- 2
8、=3 o7、设有数组定义:char array =student;那么数组所占的存贮空间为OA、6个字节B、7个字节C、8个字节D、9个字节【答案】C8、假设有以下定义和语句:double r=99,*p=&r;*p=r;,那么以下正确的表达是 oA、两个*p含义相同,都说明给指针变量P赋值B、在double r=99, *p=&r; ”中,把r的地址赋值给了 P所指的存储 单元C、语句u*p=r; ”把变量r的值赋给指针变量PD、语句u*p=r; ”取变量r的值放回r中【答案】B9、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。char x口=programming”;char
9、y =,rfortrann ; int i=0;while (xi!=,0r&yi!=0) if (xi=yi) printf (%c, );else i+;A、 xi+B、 y+iC、 xiD、 yi【答案】A10、下述程序的输出结果是 O#include void main ()int a5=l,2,3,4,5;int*p=a,*q二&p;printf (,r%dn, *(p+);printf (,r%df, *q);A、22B、11C、34D、12【答案】D【解析】程序首先定义了一个指向一维数组a的指针p, 一个指向指针变量p 的指针变量q,输出*(p+)是先输出*P即a0的值,再将指针
10、p指向数组的下 一个元素al,输出*q是输出指针p所指向单元的内容,即al的值。11、对于以下递归函数f,调用f(3)的返回值是 o int f(int n)if (n) return f (n-l) + n;else return n;A、10B、6C、3D、0【答案】B12、假设有条件表达式(exp) a+: b一,那么以下表达式中能完全等价于表达式(exp)的是 OA、 (exp=0)B、 (exp!=0)C、 (exp=l)D、 (exp!=l)【答案】B【解析】条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中 惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达
11、式2:表达其求解顺序是:先求解表达式1,假设为非0(真)那么求解表达式2,此时表达式 2的值就作为整个条件表达式的值。假设表达式1的值为0(假),那么求解表达式 3,表达式3的值就是整个条件表达式的值。并且注意+、一的用法。13、以下程序运行后,如果从键盘上输入abcdefV回车,那么输出结果为 #include#include func(char str) int num=O;while(*(str+num)!=? 0 ) num+; return (num);main () char str10,*p=str; gets(p);printf (,r%dnn, func (p); A、8B、
12、7C、6D、5【答案】c【解析】此题通过函数gets。从键盘接收一个字符串,并通过调用fune()函 数,统计串中字符的个数。14、以下描述说明正确的选项是 oA、定义结构体时,它的每个成员的数据类型可以不同B、不同结构体的成员名不能相同C、结构体定义时,其成员的数据类型不能是结构体本身D、结构体定义时各成员项之间可用分号也可用逗号隔开【答案】A15、如下程序,要想输出结果为ab,那么输入应该为 void main ()(char a;char b;scanf (,r%c%c, &a,&b);printf (,r%c%c,r, a, b);)A、a【空格】bB、abC. a bD、 97 98
13、【答案】B16、有以下程序: main ()int i,j;for(j=10; jll; j+)for (i=9; i j; i+) if (! (j%i)break; if (i=j-l) printf (%d, j);输出结果是 oA、11B、10C、9D、 10 11【答案】B17、程序中有下面的说明和定义struct abc|int x ;char y ;struct abc si , s2 ;那么会发生的情况是 oA、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错【答案】A18、假设有以下程序段 int m=0xabc,n=0
14、xabc; m-=n;printf(%xn,m);执行后输出结果是A、0X0B、0x0C、0D、 OXABC【答案】C19、设int a10, *p=a;数组元素a4的正确引用是A、 *(p+4)B、p+4C、 *p+4D、a+4【答案】A20、设有以下语句 typedef struct s int g; char h;) t;那么下面表达中正确的选项是 oA、可用S定义结构体变量B、可以用T定义结构体变量C、S是struct类型的变量D、T是struct S类型的变量【答案】A二、填空题(共10题,每题2分,共20分)1、在c语言中,将字符串中大写字母转换成小写字母的函数是【答案】strlw
15、r#strlwr () #strlwr (字符串)2、在c语言中,标识符是由英文字母、下划线组成的。【答案】数字3、局部变量的作用域是从定义的位置起,到 结束止。【答案】函数4、c语言约定用 作为字符串的结束标志。【答案】0#0【解析】考查函数的定义及其调用。解题要点在C语言中,所有的函数都是平行的,即在定义函数时是互相独立 的,一个函数并不附属于另一个函数,即函数不能嵌套定义,但可以互相调错解分析函数不能嵌套定义,但可以嵌套调用,应选项A)、B)和C)中的描 述都错误。6、如果int i = 3,那么k= (+i) + (+i) + (i+)执行过后k的值为,i的值为 0()A、 15, 6
16、B、 12, 5C、 18, 6D、 15, 5【答案】A7、以下能正确定义数组并正确赋初值的语句是 oA、int n=5,bn n;B、int aElH2 = l,3;C、int c2 = 1,2, 3,4D、 int a32=1,2,3,4【答案】D8、以下表达中正确的选项是 oA、使用typedef说明新类型名时,其格式是:typede新类型名原类型名B、在程序中,允许用typedef来说明一种新的类型名C、使用typedef说明新类型名时,后面不能加分号D、在使用typedef改变原类型的名称后,只能使用新的类型名【答案】B【解析】此题考查typedef的使用方法,typedef对已存
17、在的类型使用一个新 的名字,选项A总新类型名应该在原类型名之后,C选项中后面要加分号,D选 项中可以使用原类型名。9、以下程序运行后的输出结果是main()char s=ABCD,*p;for (p=s+l ; ps+4; p+) printf (%sn, p);A、 ABCDBCDCDD5、以下程序段的运行结果是 omain ()(int n,s=0 ;for(n=l; n=5; n+) (if(n%2=0) continue;s=s+n;)printf(%dn, s);【答案】96、以下程序的输出结果是 omain ()(int a=-l, b;if(a0) b=2*a+l;else b=
18、2*a-l;printf (,r%dH, b);【答案】T7、在c语言中,假设确实不要求返回函数值,那么应将函数定义为()类型。【答案】 void8、假设有说明:int a 3 = 1,2,3, 4,5, 6,7;那么数组a的第一维的大小 为 0【答案】39、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位.十位、 百位的顺序拆分并输出。请填空。#includemain ()int x=256;printf ( H %d-%d-%dn n , , x/10%10, x/100);【答案】x%1010、写出以下程序的运行结果。#include stdio. hmain ()int a
19、= l,2,3,-4,5;int m,n,*p;p=&a0;m=*(p+l);n=* (p+4);printf (,r%d %d %d H, *p, m, n);【答案】1 2 5三、编程题(共3题,共40分)1、求100之内自然数中偶数之和。(此题10分)【答案】 #includevoid main ()int i,sum=0;for (i=0;i=100;i+)if(i%2=0)sum=sum+i;printf (nsum=%dnn, sum);I2、编写程序:?=800*?+9*?其中?代表的两位数,809*?为四位数,8*? 的结果为两位数,9*?的结果为3位数。求?代表的两位数,及8
20、09*?后的结 果。打印如下形式,??代表一个数字:09*?=800*?+9*?(此题 14 分)【答案】 ttinclude void output (long int b, long int i) printf(,rn%ld = 800 * %ld + 9 * %ldn b,i,i);int main () void output (long int b, long int i);long int a,b,i;a = 809;for(i = 10; i = 1000 & b = 10000 & 8 * i = 100) (output (b, i);)return 0;I3、通过函数调用实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南 理工学院 语言程序设计 冲刺 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内