2013年软件学院专业课试题-理工类
- 格式:doc
- 大小:256.50 KB
- 文档页数:10
一、单项选择题(共20小题,每题2分,共40分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。
1.表示当x的取值在[1,10]和[200,210]范围内为真,否则为假的C语言表达式为A. (x>=1&&x<=10)&&(x>=200&&x<=210)B. (x>=1||x<=10)||(x>=200||x<=210)C. (x>=1&&x<=10)||(x>=200&&x<=210)D. (x>=1||x<=10)&&(x>=200||x<=210)2.若有以下定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则为数组元素a[i]不正确的引用是A. *(p+i)B. *(a+i)C. p[i]D. *a[i]3.判断char型变量ch是否为数字的C表达式为A. ('0'<=ch&ch<='9')B. (ch>='0'&&ch<='9')C. (ch>="0"&&ch<="9")D. (ch>=0&&ch<=9)4.以下程序段构成的循环是for(x=0,y=0;(y!=12&&x<4);x++) ;A. 无限循环B. 循环次数不定C. 执行4次D. 执行3次5.以下程序的输出结果是#include<stdio.h>main(){ int i;for(i=1;i<=5;i++){ if(i%2) printf("*");else continue;printf("#");}}A. *#*#*#B. *##*##*##*##C. *#*#D. #*#*6.以下程序的输出结果是#include<stdio.h>#define MAX(x,y) (x)>=(y)?(x):(y)main(){ int i=10,j=15;printf("%d",10*MAX(i,j));}A. 15B. 100C. 10D. 1507.设有说明:int (*ptr)[8];则ptr是A. 指向整形变量的指针B. 指向函数的指针,该函数的返回值为int 数据C. 指向一维数组的指针,该数组的基类型为int8.以下程序段的输出结果是char a[]="0123456789",*p=a+4;printf("%c",*p++);A. 4B. a[4]的地址C. 6D. 59.下面程序的运行结果是#include <stdio.h>main(){ int a=1,b=10;do{ b−=a;a++;}while(b−−<0);printf("a=%d,b=%d\n",a,b);}A. a=3,b=11B. a=2,b=8C. a=1,b=−1D. a=4,b=910.执行下面程序,输入2后的输出结果是#include <stdio.h>main( ){ int k;scanf("%d",&k);switch(k){ case 1:printf("%d\n",k++);break;case 2:printf("%d\n",k++);case 3:printf("%d\n",k++);break;default:printf("Full!\n");}}A. 1B. 2C. 2 3D. 2 3 Full11.若有以下结构体和变量定义,则以下引用方法不正确...的是struct worker{ int sno;char *name;} work,*p=&work;A. work.snoB. (*p).nameC. p->snoD. work->sno12.char s[10],*p=s;则以下不正确的表达式是A. p=s+1;B. p=s++;C. *(s+1)=*p;D. *p++=s[2];13.以下不能对二维数组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][4]={1,2,3};D. int a[][3]={{1,0,1},{},{1,1}};14.若有以下说明和语句,则输出结果是printf("%d",strlen(sp));A. 4B. 3C. 9D. 字符串中有非法字符15.对于结构体类型,以下说法正确的是A. 定义结构体时不能定义结构体变量B. 结构体变量所占的空间等于占空间最大的成员所需空间C. 结构体类型可以作为返回值类型D. 结构体定义后可以与标准类型一样使用,但前面必须使用struct16.在C语言中,要求运算数必须是整型的运算符是A. /B. ++C. !=D. %17.以下程序段在VC6.0环境中运行的输出结果是struct studentinfo{ char name[10];int SNO;char sex;} student,*ps=&student;printf("%d,%d",sizeof(student),sizeof(ps));的输出结果是A. 15,15B. 15,4C. 15,2D. 4,218.根据17题中的结构体和变量定义,不能..正确输出name成员的语句是A. printf("%s",);B. printf("%s",ps->name);C. printf("%s",*);D. printf("%s",(*ps).name);19.以下程序的输出结果是main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);}A. 0650B. 147C. 5430D. 输出值不定20.设有以下变量定义:char str[20],i;当输入“zhang空格hong回车”时,能正确读入“zhang hong”的程序段是A. scanf("%s",str);B. for(i=0,str[i]=getchar();str[i]!='\n';)str[i++]=getchar();C. gets(str);D. for(i=0,str[i]=getchar();str[i]!='\0';i++)str[i]=scanf("%c",str[i]);二、填空题(共10题,每题1分,共10分)请按照试题中对应的标号顺序填写到答题表中1.C函数中若省略函数类型说明,则该函数类型默认为。
2.局部变量默认的存储类型为。
3.文件包含命令#include有两种形式,区别是搜索路径不同。
包含系统文件string.h应该使用。
4.如果要限定变量的作用域仅在当前文件有效,应使用关键字。
语句开始下次循环。
6.C语言变量有四种存储类别,其中关键字extern的含义是。
7.静态变量的初始化是在阶段完成的。
8.数组名作为实参使用时,传送的是。
9.sizeof运算符的对象即可以是变量,也可以是。
10.C语言中多维数组可嵌套定义,即n维数组可看作元素类型为。
三、判断题判断下题是否正确,正确的划√,错误的划×(每题1分,共15分)1.在do-while循环中,循环体至少执行一次。
()2.C语言中局部变量和全部变量可以同名,并且在函数内局部变量优先于全局变量。
()3.预处理命令都是以#号开头,且每行只能写一条命令。
()4.定义二维数组时,如果对数组的所有元素赋值,则可省略长度说明。
()5.C语言要求所有被调用的函数一定要在调用语句之前进行定义。
()6.函数内定义的静态变量当函数执行完其值依然存在。
()7.void关键字只能用于定义函数,不能定义变量。
()8.一个函数直接或间接的调用自己,称作递归调用。
()9.全局变量是指在main函数中定义的变量。
()10.for(exp1;exp2;exp3) 语句s;中的s可以是空语句。
()11.结构体可以与标准类型一样使用,但前面须用struct关键字。
()12.main函数称为主函数,是个无参函数。
()13.表达式n=++i等价于n=i;i=i+1;。
()14.语句char s[]="test";与char s[]={'t','e','s','t'};是等价的。
()15.C函数中的函数即可以嵌套定义,也可以嵌套调用。
()四、阅读程序题本题共5小题,每小题5分,共25分,请写出程序的运行结果1.【程序】#include <stdio.h>#include <stding.h>main(){ char i,s[5][81],max=0;printf("input 5 strings");for(i=0;i<5;i++)gets(s[i]);for(i=0;i<5;i++)if(strlen(s+i)>max)max=i;puts(s[max]);}【运行结果】写出从键盘输入一下5个字符串时程序的运行结果"Program","test","I am a student","wee","computer"2.【程序】#include <stdio.h>main(){ int i,f1=1,f2=1;for(i=1;i<=5;i++){ printf("\t%d\t%d",f1,f2);f1=f1+f2;f2=f1+f2;}printf("%d,%d\n",f1,f2);}【运行结果】3.【程序】#include <stdio.h>void fun(int n){ static int fn=1;fn=fn*n;printf("\t%d",fn);}main(){ int i;for(i=2;i<=5;i++) fun(i);}【运行结果】4.【程序】void select(int max,int a[],int n){ int i;max=a[0];for(i=1;i<n;i++)if(a[i]>max) max=a[i];}main(){ int i,max=10,a[10]={10,20,30,40,50,60,70,80,90,100}; select(max,a,10);printf("\nmax=%d",max);}【运行结果】5.【程序】写出输入84时程序运行结果#include <stdio.h>main(){ int score;printf("\n input score: ");scanf("%d",&score);switch(score/10){ case 10:case 9: printf("\n 优");case 8: printf("\n 良");case 7:case 6: printf("\n 及格");default: printf("\n 不及格");}}【运行结果】五、编程题(本题共1题,10分)已知每张选票上按序印有候选人姓名,要求选民从中勾选3人,多选或少选都视为废票不予统计,统计选票时输入数据的格式为长度为5的由0和1组成的字符串:“1”表示对相应候选人被选中,“0”表示未选中,如“01011”表示第2、4、5个候选人被选中。