计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.微机一般是16位机或32位机,它指的是机器的( d )。 A.速度 B.容量 C.系列号 D.字长
2.若当前路径为C盘TC子目录,仅将A盘根目录下的文件名第3个字符为P,扩展名为C的所有文件复制到C盘TC子目录下,一定成功的命令是( c )。 A.COPY A:\\*P*.C
B.COPY A:\\??P*.C C:
C.COPY A:\\??P*.C D.COPY ??P*.C C:\\TC 3.在C程序中,main函数的位置是( c )。
A.必须作为第一个函数 B.必须作为最后一个函数 C.可以放在任意位置 D.必须放在它所调用的函数之后 4.设int a=3;下列哪一个表达式的值等于0( c )。
A.a&&(a>0) B.!a||a C.a%=a D.a>=a 5.如果a=5,b=2,c=3,d=4,则表达式a>b? a:c>d? c:d的值是( d )。 A.2 B.3 C.4 D.5
6.在C程序中,设一表达式中包含有int, long, char和unsigned类型的变量和数据,这四种类型数据的转换规则是( )。
A.int→unsigned→long→char B.char→int→long→unsigned C.char→int→unsigned→long D.int→char→unsigned→long 7.设有说明:int a=11, b=10;执行表达式a%=b+(a&&b)后,a的值为( )。 A.0 B.1 C.11 D.22 8.下面程序段的运行结果是( )。 main() {
int x=1,y=2,z=3,s=0; if(y>x) if(y>z) s=1; else s=2; else s=3;
printf(”% d\\ n”,s); }
A.0 B.1 C.2 D.3
1
9.设有说明:int x=1, y=2;执行条件表达式(x=y)? ++x:--x后,x的值为:( )。 A.0 B.1 C.2 D.3 10.若k为整型变量,则下面while循环( )。 k=10;
while(k==0)k=k-1
A.执行0次 B.执行1次 C.执行10次 D.执行无限次 11.关于for(;;);语句,下面说法正确的是( )。 A.有语法错误 B.循环一次也不执行 C.循环只执行一次 D.循环执行无限次 12.以下对一维数组a的正确定义是( )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf(”%d”, &n); int a[SIZE]; int a[n];
13.以下一维数组初始化语句中,正确的是( )。 A.int a[5]={1,2}; B.int a[5]={}; C.int a[5]={5*2} D.int a[]=(1,2,0,0,0);
14.若定义字符数组char s[5]=”BOOK”;则输出该串正确的函数调用是( )。 A.puts(s[10]); B.puts(s);
C.printf(”%c”,s); D.printf(”%s”,&s); 15.下列定义不正确的是( )。 ...A.#define PI 3.1415926 B.static char c; C.int max(x,y); D.int *p[5]; int x,y;
{}
16.下列哪种数据不是存放在动态存储区中( )。 ..
A.局部自动变量 B.局部静态变量
C.函数调用时的现场保护数据 D.函数形参变量 17.设有char s[]=”top”,*p=s;p[1]=‘a’;则下面说法不正确的是:( )。 ...A.s[0]存放字符t B.s[1]存放字符0 C.s[1]存放字符a D.s[2]存放字符p
18.定义一个指向具有5个元素的一维整型数组的指针变量的正确定义为( )。 A.int *p[5]; B.int *p; C.int (*p)[5]; D.int *p[][5]; 19.下面程序的运行结果是( )。 #define SQR(x)((x)*(x))
2
#include printf(”sqr=%. 2f\\n”, SQR(v)+1);} A.sqr=3.0 B.sqr=9.0 C.sqr=10 D.sqr=10.00 20.feof函数用来判断文件是否结束,如果文件没有结束,则返回值是( )。 A.-1 B.0 C.1 D.EOF 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面哪些软件属于操作系统范畴?( )。 A.DOS B.Foxpro C.Turbo C D.UNIX E.Windows 22.在下列各说法中,正确的说法有( )。 A.与while结构相比,do„while结构至少要执行一次循环。 B.for结构和do„while结构类似,也是“先判断后执行”。 C.do„while结构是“先执行后判断”。 D.进入do„while循环的条件是:条件表达式为1。 E.退出while循环的条件是:条件表达式为1。 23.若有如下定义和赋值( )。 int a=3, *p, *q; p=&a; q=p; 则能够输出变量a的地址值的语句是: A.printf(”%d\\n”,p); B.printf(”%d\\n,*q”); C.printf(”%d\\n”,a); D.printf(”%d\\n”,*p); E.printf(”%d\\n”,q); 24.设有定义int x[4][5],*p;以及赋值p=*x;则非法的表示x数组元素的形式是( )。 ..A.x[4][5] B.x[1] C.*(x[1]+2) D.x[2][3] E.p[20] 25.表达式~0<<2的值可以是( )。 A.-4 B.-3 C.0xfffc D.0177774 E.65531 三、填空题(本大题共10小题,每小题1分,共10分) 请在每小题的空格中填上正确答案。错填、不填均无分。 26.用一字节表示十进制-7在机内的存储形式是___________。 27.C语言中的函数应由___________和函数体两部分组成。 28.在格式输出语句中,用于字符串输出的格式符是%___________。 3 29.设有int x=10;则执行while(x^x) ++x;后,x的值是___________。 30.设i,y,s均为int型变量,则执行下面for循环后,y的值为___________。 for(i=0, y=0; i<4;){s=i*i;y=y+s;i++;} 31.设有int y[2][3]={5,4,6,7,8,9};则y[1][1]的值为___________。 32.定义在函数内部的变量和函数的形参都是___________变量。 33.若p为指针变量,则(*p)++表示先取指针p指向的对象再使对象的___________。 34.已知定义:union{long x;int y;}data; 则变量data占用内存的字节数是___________。 35.字符串读函数fgets()的格式是fgets(str,n,fp);它的功能是从与fp有联系的文件中读___________个字符。 四、简答题(本大题共4小题,每小题3分,共12分) 36.简述字符常量与字符串常量的差异。 37.在C语言的if语句中,用作条件判断的“表达式”可以是什么类型的表达式? 38.用字符串指针变量处理字符串与用字符数组处理字符串有何不同? 36.简述fread函数的作用,其使用格式如下: fread(stu,size,n,fp); 其中fp为文件指针,size为字节数,n为整数,stu为内存地址。 五、阅读分析题(本大题共7小题,每小题4分,共28分) 40.阅读下列程序并写出运行结果。 #include ”stdio.h” #include ”string.h” main() { char str[]=”department”,*p=s; printf(”the length of srt is %d”,strlen(p)); prinft(”\\n%s”,p); } 41.阅读下列程序并写出运行结果。 main() { int i=3, b; b=(i--)+(i--)+(i--); printf(”%d,%d\\n”,b,i); } 42.阅读下列程序,并回答问题。 main() {int s=0, k; for(k=4;k>=0;k--) 4 { switch(k) { case 1: case 4: s++;break; case 0: case 2: break; case 3: s+=2;break; } } printf(”s=%d\\n”,s); } 试回答switch语句共执行多少次并写出运行结果。 43.阅读下列程序并写出运行结果。 main() { int y[2][3]={5,4,6,7,8,9}; int m[2],k,j; for (k=0;k<2;k++){ m[k]=y[k][0]; for(j=1;j<3;j++) if(y[k][j] 第44题、第45题请参阅下面程序,并回答相关问题: main() {int i,j,x=0; for(i=0;i<2;i++) {x++; for (j=0;j<=3;j++) { if(j%2) continue; x++;} x++;} printf(”x=%d\\n”,x);} 44.if(j%2) continue;语句的作用是什么?continue语句执行了多少次? 45.程序输出结果是多少? 46.设指向单向链表的头结点指针head是一个全局指针变量,且有如下程序: 5 void display( ) { struct food *p=head; while (p!=NULL) { printf(”%s\\n”, p→name); printf(”%d\\n”, p→product); p=p→next; } } 设程序已经提供了关于food结构体的全部信息,试写出结构体food的定义。 六、程序设计题(本大题共2小题,第47题8分,第48题12分,共20分) 47.对下面的3行3列的二维整型数组x: int x[3][3]={1,2,3,4,5,6,7,8,9}; 编程求每一行中元素的累加和并输出之。 48.从键盘输入一些字符,逐个把它们送到磁盘上并统计这些字符的个数,直到输入一个“#”为 止 。 设 磁 盘 ASCII 码 文 件 名 为 ab.txt 。 6 7 8 9 因篇幅问题不能全部显示,请点此查看更多更全内容