分享
2011年软件学院专业课试题-C语言部分.doc
下载文档

ID:3290091

大小:204.50KB

页数:6页

格式:DOC

时间:2024-02-22

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2011 软件 学院 专业课 试题 语言 部分
精通教育集团-软件学院专业课集训营资料 2011年天津市大学软件学院高职升本专业课试题-C语言部分 考场号 考生号 姓名 第一部分 C语言部分 100分 一、单项选择题(共25小题,每题2分,共50分) 以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。 1. 设有类型说明 unsigned int a=65535;,按%d格式输出a的值,其结果是( )。 A. 65536 B. -1 C. 1 D. -32767 2. 以下程序输出的结果是( )。 #include <stdio.h> main() { int a=-1,b=4,k; k=!((++a<0)&&!(b--<0)); printf("%d%d%d\n",k,a,b); } A. 104 B. 103 C. 013 D. 004 3. 设有int i;则表达式i=1,++i,++i||++i,i的值为( )。 A. 1 B. 2 C. 3 D. 4 4. 设有int a[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是( )。 A. 10,11,12 B. 11,12,12 C. 10,12,12 D. 11,11,12 5. 设有说明int s[2]={0,1},*p=s; 则下列错误的C语句是( )。 A. s+=1; B. p+=1; C. *p++; D.(*p)++; 6. 以下程序的输出结果是( )。 #include <stdio.h> `void prtv(int *x) { printf("%d\n",++*x);} main() { int a=25; prtv(&a); } A. 25 B. 26 C. 27 D. 以上均不对 7. 下列叙述中正确的是( )。 A. C语言的函数可以嵌套定义 B. C语言的子程序有过程和函数两种 C. C语言编译时不检查语法 D. C语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数 8. 以下程序的输出结果是( )。 #include <stdio.h> main() { char st[20]="hello\0\t\\"; printf("%d%d\n",strlen(st),sizeof(st)); } A. 520 B. 99 C.1320 D. 2020 9. int a,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是( )。 A. scanf("%d%d%d",a,b,d); B. scanf("%d%d%d",&a,&b,&d) C. scanf("%d%d%d",&a,&b,d); D. scanf("%d%d%d",a,b,*d); 10. 以下程序的输出结果是( )。 #include <stdio.h> main() { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); } A.10 1 9 2 B. 10 9 9 0 C. 9 8 7 6 D. 10 10 9 1 11. 以下定义语句中正确的是( )。 A. int a=10,*b=&a; B. float a=b=10.0; C. char a='A'b='B'; D. float *a,b=&a; 12. 下列关于单目运算符++、--的叙述中正确的是( )。 A. 它们的运算对象可以是char型变量、int型变量和float型变量 B. 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C. 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D. 它们的运算对象可以是任何变量和常量 13. 设a=5、b=6、c=7、d=8、m=2、n=2,执行(m=a>b)&&(n=c>d)后n的值为( )。 A.4 B. 2 C. 3 D. 1 14. 以下程序段的输出结果是( )。 char s[]="\\141\141abc\t"; printf("%d\n",strlen(s)); A. 9 B. 10 C. 12 D. 14 15. 若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是( )。 A. i=*p; B. i=**p; C. i=&j; D. *p=*&j; 16. 以下叙述正确的是( )。 A. 可以把define和if定义为用户标识符 B. 可以把if定义为用户标识符,但不能把define定义为用户标识符 C. define和if都不能定义为用户标识符 D. 可以把define定义为用户标识符,但不能把if定义为用户标识符 17. 设有int i,j,k; 则表达式i=1,j=2,k=3, i&&j&&k的值为 ( )。 A. 1 B. 2 C. 3 D. 0 18. 下面的程序执行后,变量a的值是( )。 #include <stdio.h> #define SQR(x) x*x main() { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("%d\n",a); } A. 10 B. 1 C. 9 D. 0 19. 为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中else总是与( )组成配对关系 A. 缩放位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 同一行上的if 20. 以下程序的输出结果是( )。 int x=10,y=10; printf("%d %d\n",x--,--y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 21. 选出下列标识符中不是合法的标识符的是( )。 A. hot_do B. cat1 C. _pri D. 2ab 22. 设有说明double (*p1)[N];其中标识符是( )。 A. N个指向double型变量的指针 B. 指向N个double型变量的函数指针 C. 一个指向由N个double型元素组成的一位数组的指针 D. 具有N个指针元素的一维指针数组,每个元素都指向double变量 23. 在C程序中有如下语句:char *func(int x,int y);它是 A. 对函数func的定义 B. 对函数func的调用 C. 对函数func的原型说明 D. 不合法的 24. 下列叙述中不正确的是( )。 A. 可以对整型数组进行整体的输入、输出 B. 可以对字符数组进行整体的输入、输出 C. 字符数组中可以存放字符串 D. 不能在赋值语句中通过赋值运算符“=”对字符数组进行整体赋值 25. 以下对二维数组a进行正确初始化的是( )。 A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[][3]={1,2,3,4,5,6}; C. int a[2][]={1,2,3,4,5,6}; D. int a[2][]={{1,2},{3,4}}; 二、填空题(共10个空,每空1分,共10分) 请按照试题中对应的标号顺序填写到答题表中 1. 设a为整型变量,初值为12,执行赋值表达式a+=a-=a*a后,a的值是 。 2. 设整型变量a 的值为-1,在16位微机中用16进制打印a的值是 。 3. C语言提供的预处理功能主要有三种:宏定义,文件包含和条件编译。 条件编译命令有三种基本形式: ① #ifdef 标识符 ② # 标识符 ③ #if 表达式 程序段1 程序段1 程序段1 #else #else #else 程序段2 程序段2 程序段2 #endif #endif #endif 4. 类型定义:int a[10],*p; 执行赋值语句p=a;之后,那么p+5是 。 5. 在内存中供用户使用的存储空间可分为三个区:存储程序的程序区,存储数据的静态存储区和动态存储区。在静态存储区中存放的数据是 变量和局部静态变量。 6. C语言中静态变量和外部变量的初始化是在 阶段完成的。 7. 设a和x都为整型变量,执行赋值表达式x=(a=3,6*3)后,x值为 。 8. 执行下列语句int a=8;a+=a-=a*a;后,a的值是 。 9. 如有下列语句:char A[]={"I am a student"};该字符串的长度是 。 10. 如有下列输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 。 三、判断题 判断下题是否正确,正确的划√,错误的划×(每题1分,共15分) ( )1.if(a=0) i=1; 是合法的C语句。 ( )2.for(;;)S中的语句S必执行无穷多次。 ( )3.print可以作为变量名使用。 ( )4.在C程序中,函数既可以嵌套定义,也可以嵌套调用。 ( )5.int *p[3];定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。 ( )6.语句int *p;*p=0;存在着潜在的危险。 ( )7.语句int *p;p=0;是错误的。 ( )8.所有被调用的函数一定要在调用之前进行定义。 ( )9.A-=7等价于a=a-7 ( )10.构成C程序的基本单位是函数。 ( )11.利用fcolse函数可以关闭已打开的文件。 ( )12.char str[10][]; 是错误的说明语句。 ( )13.unsigned 和void 在C中都是保留的。 ( )14.数组名可以作为参数进行传递。 ( )15.int If='\0';会出现编译错误。 四、阅读程序题 本题共5小题,每小题5分,共25分,请写出程序的运行结果 1. 【程序】 int a[][3]={1,2,3,4,5,6}; main() { int i,j,(*p)[3]; p=a; printf("%d %d %d\n",p[0][0],*(p[0]+1),(*p)[2]); printf("%d %d %d\n",p[1][0],*(p[1]+1),(*(p+1))[2]); for(i=0;i<2;i++) for(j=0;j<3;j++) printf("%d ",*(*(p+i)+j)); printf("\n"); } 【运行结果】 2. 【程序】 #include <stdio.h> main() { char a[]="Language",b[]="Programe"; char *p1,*p2; int k; p1=a;p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); } 【运行结果】 3. 【程序】 #include <stdio.h> main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf("n=%d\n",n); } 【运行结果】 4. 【程序】 #include <stdio.h> main() { int i,j,k,a=5,m[6][6]; i=1; k=(a+1)/2; for(j=1;j<=a*a;j++) { m[i][k]=j; if(j%a==0) { i=(i%a)+1;continue; } k=(k%a)+1; i--; if(i==0) i=a; } for(i=1;i<=a;i++) { for(j=1;j<=a;j++) printf("%4d",m[i][j]); printf("\n"); } } 【运行结果】 5. 【程序】 #include <stdio.h> main() { int x,y,z; x=y=z=-1; printf("x=%d\ty=%d\tz=%d\n",x,y,z); ++y&&++x||++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); x=y=z=-1; ++x||y++&&z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); } 【运行结果】 6

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开