《2012年软件学院专业课试题-C语言部分(answer).pdf》由会员分享,可在线阅读,更多相关《2012年软件学院专业课试题-C语言部分(answer).pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2012 年天津市大学软件学院高职升本专业课试题-理工类考场号考场号 考生号考生号 姓名姓名 第一部分第一部分 C C 语言部分语言部分 100100 分分一、单项选择题(共一、单项选择题(共 2525 小题,每题小题,每题 2 2 分,共分,共 5050 分)分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。对应的格中,未填入答题表,错选或多选均不得分。1.一个 C 语言程序是由( B )组成的。A. 一个主程序和若干个子
2、程序B. 函数C. 若干过程D. 若干子程序2.若 x、i、j 和 k 均是 int 型变量,则计算表达式 x=(i=4,j=16,k=32)后,x 的值为( C ) 。A. 4B. 16C. 32D. 523.下列程序不是死循环的是( B ) 。A. int i=100;B. int k=0; while(1) do +k; while(k=0); i=i%100+1; if(i100) break; C. for(;);D. int s=36; while(s);-s;4.在 C 语言中一维数组的定义形式为:类型说明符 数组名( A ) 。A. 常量表达式B. 整型表达式C. 整型常量或整
3、型表达式D. 整型常量5.下面四个选项中,均是正确的八进制数或十六进制数的选项是( C ) 。A. -10B. 0abc -0 x8f -017 -0110 xcC. 010D. 0a12 -0 x11 -0 x123 0 xf1 -Ox86.putchar 函数可以向终端输出一个( D ) 。A. 整型变量表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值7.下列程序的输出结果是( B ) 。main() printf(%x,A); A. 65B. 41C. AD. 1018.程序 int a10=9,8,7,6,5,4,3,2,1,0,*p=a+5;的输出结果是( C ) 。pr
4、intf(%d,*-p);A. 非法B. a4的地址C. 5D. 39.以下选项中,与 k=n+完全等价的表达式是( A ) 。A. k=n,n=n+1B. n=n+1,k=nC. k=+nD. k+=n+110. 被调函数调用结束后,返回到( A ) 。A. 主调函数中该被调函数调用语句处B. 主函数中该被调函数调用语句处C. 主调函数中该被调函数调用语句的前一语句D. 主调函数中该被调函数调用语句的后一语句11. 以下程序的输出结果是( A ) 。#define MIN(x,y) (x)(y)?(x):(y)main() int i,j,k; i=10,j=15; k=10*MIN(i,j
5、); printf(%dn,k); A. 15B. 100C. 10D. 15012. 对于以下变量定义,正确的赋值是( B ) 。int *p3,a3;A. p=aB. *p=a0C. p=&a0D. p0=&a013. C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是( C ) 。A. float 型B. long 型C. int 型D. double 型14. 以下关于指针概念的叙述中,错误的是( C ) 。A. 一个指针变量只能指向同一类型的变量B. 一个变量的地址称为该变量的指针C. 两个同类型的指针变量可以加减运算D. 任何指针变量都可以与指针 NULL 进行比较15. C
6、 语言的整型数据在内存中的存储形式是( C ) 。A. 原码B. 反码C. 补码D. ASCII 码16. 调试程序是指对程序进行( C ) 。A. 编辑B. 编译C. 查错和排错D. 连接17. 以下叙述正确的是( D ) 。A. 可以把 define 和 if 定义为用户标识符B. 可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符C. define 和 if 都不能定义为用户标识符D. 可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符18. 以下程序的输出结果是( B ) 。void prtv(int *x) printf(%dn,+*x);
7、 main() int a=25;prtv(&a); A. 25B. 26C. 27D. 以上均不对19. 在 C 语言程序中( B ) 。A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可以嵌套C. 函数的定义和调用均不可以嵌套D. 函数的定义和调用均可以嵌套20. 以下程序的输出结果是( A ) 。main() int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2); A. 3B. 4C. 1D. 221. 构成 C 语言程序的基本单位是( B ) 。A. 过程B. 函数C. 语句D. 命令22. 在
8、 C 语言中,复合语句的构成是将一系列语句置于( D ) 。A. begin 和 end 之间B. 方括号“”之间C. 圆括号“()”之间D. 花括号“”之间23. 以上对一维整型数据 a 进行正确初始化的语句是( D ) 。A. int a10=(0,0,0,0,0); B. int a10=;C. int a=;D. int a10=10*1;24. 在 C 语言中,要求运算数必须是整型的运算符是( D ) 。A. /B. +C. !=D. %25. 以下程序的输出结果是( B ) 。#define PS 3+4#include main() int z; z=PS*2; printf(%
9、d,z); A. 14B. 11C. 2D. 24二、填空题(共二、填空题(共 5 5 小题,每题小题,每题 1 1 分,共分,共 1010 分,请按照试题中对应的标号顺序填写到答题表中)分,请按照试题中对应的标号顺序填写到答题表中)1.设有定义 int x=9,y=8;表达式 x=y+1 的结果是 1 。2.在内存中存储A要占用 2 个字节,存储A要占用 1 个字节。3.访问变量的方式有 直接访问 和 间接访问 。4.结构化程序的三种结构是 顺序结构 、 选择结构 、 循环结构 。5.C 语言中,数组在内存中是一块 连续 的存储区,由 数组名 代表它的首地址。三、判断题三、判断题判断下题是否
10、正确,正确的划判断下题是否正确,正确的划,错误的划,错误的划(每题(每题 1 1 分,共分,共 1515 分)分)( )1. 在 C 语言中,除了 main 函数外,任何函数都可以递归调用。( )2. break 和 return 语句所起的作用是一样的,都是跳出循环。( )3. 结构体类型本身不占内存空间,结构体变量占用内存空间。( )4. C 语言函数的返回值只能是数值,不能是地址。( )5. 在 C 语言中,字符串常量存放在字符数组中要有一个结束符,该结束符是 0。( )6. 在 C 语言中,逗号既可以作为运算符,也可以作为分隔符。( )7. 任何表达式语句都是表达式加分号组成的。( )
11、8. 形参只有在被调用时才分配存储空间。( )9. 对于二维数组 a 来说 a+1 与*(a+1)的值相等,因此二者的含义是一样的。( )10. 将一个字符串abc赋值给字符串变量 str 的方法是 str=abc。( )11. C 语言的重要特点是能够直接处理物理地址,其指针类型数据就是用来存放变量地址的。( )12. 凡在函数中未指定存储类别的局部变量,其默认的存储类别为 static。( )13. for 语句作为循环控制语句时,其括号内各个表达式与其后的分号都可省略。( )14. unsigned 和 void 在 C 语言中都是保留字。( )15. 设有定义: int (*ptr)(
12、);ptr 指向函数的指针,该函数返回一个 int 型数据。四、阅读程序题四、阅读程序题本题共本题共 5 5 小题,每小题小题,每小题 5 5 分,共分,共 2525 分,请写出程序的运行结果分,请写出程序的运行结果1.1.【程序程序】#include main() int a6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i,j; for(i=0;i6;i+) for(j=0;j6;j+) if(ai=bj) break; if(j6) printf(%d ,ai); printf(n); 【运行结果】 4 25 27 162.2.【程序程序】#include
13、int f(int x,int y) return (y-x)*x); main() int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c); printf(%dn,d); 【运行结果】 93.【程序】#include void f(int c) int a=0; static int b=0; a+; b+; printf(%d: a=%d b=%dn,c,a,b); void main() int i; for(i=1;i=3;i+) f(i);【运行结果】 1:a=1 b=1 2: a=1 b=2 3: a=1 b=34.4.【程序程序】#include main() char a=Language,b=Programe; char *p1,*p2; p1=a;p2=b; int k; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(%c,*(p1+k); 【运行结果】 gae5.【程序】#include main() int i; for(i=1;i6;i+) if(i%2) printf(#);continue; printf(*); 【运行结果】 #*#*#
限制150内