02275计算机基础与程序设计最新全国自考真题汇编 (新版2007~2012珍藏级)
(答案随后整理公布上传)
全国2012年4月自考计算机基础与程序设计试题
课程代码:02275
一、单项选择题 (本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.存储容量1KB等于 ( ) A.23字节 C.220字节
B.210字节 D.230字节
2.下面哪种设备是输出设备? ( ) A.扫描仪 C.鼠标
B.键盘 D.显示器
3.设有int a=3,b=-4,c=5;表达式++a-c+b++的值是 ( ) A.-6 C.-4
B.-5 D.-3
4.设有int x,y;表达式y=(x=1,++x,x+2)的值是 ( ) A.1 C.3
B.2 D.4
5.以十六进制形式输出整型数的格式说明符是 ( ) A.%x C.%o
B.%u D.%d
6.下列语句中,有语法错误的是 ( ) ..A.if(x>y); B.if(x= =y)x+y;
C.if(x!=y) scanf(″%d″,&x)else scanf (″%d″,&y); D.if(x 页眉内容 7.设有程序段 int x=1,y=-1; if(y<0)x-=y; else x+=y; 执行完该程序段后,x的值为 ( ) A.-1 B.0 C.1 D.2 8.下面程序段的循环次数是( ) int k=2; while(k= =0) printf (″%d″,k); k--;printf (″\n″); A.0次 B.1次 C.2次 D.无限次 9.下面程序段的输出结果是( ) for(i=1;i<3;i++) for(j=1;j<3;j++) printf(″%d”,i+j); A.2 3 3 4 B.2 3 4 C. 2334 D. 234 10.若有定义int a[4]={1,2,3,4};则表达式a[a[2]- 3*a[0]+1]的值是(A.1 B.2 C.3 D.4 11.在C语言程序中,关于函数的定义和调用,以下描述正确的是( A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套 12.关于main函数,以下说法中正确的是 ( ) A.C语言程序总是从有定义的函数起顺序执行,在main函数中结束 页脚内容 ) )页眉内容 B.在C语言程序中,被调用的函数必须在main()函数中定义 C.C语言程序中的main()函数必须放在程序开始部分 D.C语言程序总是从main()函数开始执行 13.若要定义一个长整型的变量a和一个指向变量a的指针变量q,下面正确的定义语句是( ) A.long a,*q=a; B.long a,*q=&a; C.long*q=&a,a; D.long a,q=&a; 14.若有说明long int x[5];下面能正确表示数组元素地址的是( A.&x[3] B.&x C.&x+1 D.*x 15.下面关于结构体类型的定义正确的是( ) A.struct ABC B.struct ABC { { int a int a; char b char b; char *p char *p; } } C.struct ABC D.struct ABC { { int a; int a, char b; char b, char *p; char *p, }; }; 16.下面列出的位运算符中,表示按位与操作的是 ( ) A.~ B.! C.& D.^ 17.下面各个位运算符优先级从左到右依次升高的是 ( ) A.> > | & ~ B.| > > & ~ C.| & > > ~ D.~ | & > > 页脚内容 )页眉内容 18.设有说明:int u=1,v=3;表达式:u<<=v的值是( ) A.0 C.3 B.1 D.8 19.如果将文件指针fp指向文件末尾,正确的语句是 ( ) A.feof(fp); C.fseek(fp,0L,0); B.rewind(fp); D.fseek(fp,0L,2); 20.若要在C盘TC目录下,建立一个a1.dat的文本文件,正确使用打开文件的函数是( ) A.fopen(″C:\\\\ TC \\\\ a1.dat″,″r″) B.fopen(″C:\\ TC \\ a1.dat″,″r″) C.fopen(″C:\\\\ TC \\\\ a1.dat″,″w″) D.fopen(″C:\\ TC \\ a1.dat″,″w″) 二、多项选择题 (本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面属于合法的C语句的有 ( ) A.表达式语句 C.子程序调用语句 E.循环语句 22.下面循环语句中,没有“无限循环”错误的循环语句有 ( ) ..A.for(;;); C.while(1); E.do{循环体)while(1); 23.设有声明:int a[5]={1,3,5,7,9);下面表达式的结果为10的有 ( ) A.a[l]+a[3] C.2*a[2] E.a[1]+[-a[2]+a[3] 24.若有如下定义及赋值: int x=5,*p,*pl; p=&x; pl=p; B.a[2]-2*a[1] D.a[0]+a[4] B.for(i=1;i<10;i++); D.while(0); B.函数调用语句 D.空语句 页脚内容 页眉内容 则可以输出变量x的值的语句有 ( ) A.printf(″%d\n″,x); C.printf(″%d\n″,p1); E.printf(″%d\n″,*p1); 25.设有关于结构体类型的定义: struct boat { char name[10]; int weight; }myboat,*ps; 下面各项中语句都正确的有 ( ) A.myboat.name=″Li″。 myboat.weight=1600; B.ps=&myboat; strcpy(ps->name,″Wuhan″); C.ps=&myboat; ‘ Ps->weight=2700; D.strcpy(myboat.name,″Wine″); ps=&myboat; E.ps=&myboat,strcpy(myboat.name,″Shanghai″); Ps->weight=5512; 三、简答题 (本大题共4小题,每小题4分,共16分) 26.写出将x,y,z,w分别声明为整型变量、短整型变量、长整型变量和无符号整型变量的语句。 27.将下面for循环的程序段,用含while循环的程序段实现。 for(s=0,i=1;i<=10;i++) s+=i; 28.简述声明语句:char *p[4];的含义。 29.设有声明: struct cjd B.printf(″%d\n″,*p); D.printf(″%d\n″,&x); 页脚内容 页眉内容 { long bh; long int xq; char xm[9]; float score[3]; }x={,2,″张大力″,76,85.0,90); 简单回答(1)结构体名;(2)结构体类型变量;(3)结构体类型变量所占字节数;(4)结构体成 员x.score[2]的值。 四、阅读分析题 (本大题共6小题,每小题5分,共30分) 30.写出下面程序的运行结果 main() { int a=1,b=2,c=3; ++a; b=b+a: c=c/2; printf(″%d,%d,%d\n″,a,b,c); } 31.写出下面程序的运行结果 main() { char ch; ch=′a′; switch(ch) { case′a′:printf(″*\n″); case′b′:printf(″**\n″); case′c′:printf(″***\n″); } 页脚内容 页眉内容 ch=′b′; switch(ch) { case ′b′:printf(″**\n″); case ′a′:printf(″*\n″);break; case ′c′:printf(″***\n″); } } 32.写出下面程序的运行结果 void main(void) { int x; for(x=1;x<10;x+=2) printf(″%d\t%d\n″,x,x*x); } 33.写出下面程序的运行结果 #include char a[5][8]={ ″java″,″fortran″,″basic″,″cobol″,″pascal″},b[8],c[8]; int i; strcpy(b,a[0]); strcpy(c,a[0]); for(i=1;i<5;i++) { if(strcmp(b,a[i])<0)strcpy(b,a[i]); if(strcmp(c,a[i])>0)strcpy(c,a[i]); } printf(″%s\n″,b); 页脚内容 页眉内容 printf(″%s\n″,c); } 34.写出下面程序的运行结果 void main(void) { int x; for(x=1;x<=5;x++) printf(″%d,%d\n″,x,fun(x)); } int fun(int x) { static int fac=1; fac*=x; return fac; } 35.写出下面程序的运行结果 void f2(char*t,char*s) { while(*t!=′\\0′)t++; while(*s!= ′\\0′) { *t=*s: s++;t++; } *t=*s; } void main(void) { char s[80]= ″ ″,*ps[3]={ ″there″,″is a″,″car″}; 页脚内容 页眉内容 int i; for(i=0; i<3;i++) f2(s,ps[i]); printf(″%s\n″,s); } 五、编程题 (本大题共2小题,每小题12分,共24分) 36.从键盘输入10个整数并存放到一维数组中,计算下标为奇数的元素的累加和并输出运行结果。 37.从键盘上输入10个浮点型数,求出10个数的总和与平均值,并将总和与平均值写到d盘根目录下的文本文件array.dat中。 全国2007年4月高等教育自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.I/O设备指的是计算机的( B ) A.存储设备 B.输入和输出设备 C.控制器 D.运算器 2.具有只读功能的内存储器是指( A ) A.ROM B.RAM C.硬盘 D.CD-ROM 3.十进制数-5在八位的微机内的存储形式是( D ) A. B. C. D. 4.C语言源程序的基本单位是( B ) A.过程 B.函数 C.子程序 D.语句 5.设有int p,q;以下不正确的语句是(D ) ...A.p *=3; B.p/=q; C.p+=3; D.p&&=q; 6.若有下列程序段,欲使a=2,b=3,对应正确的数据输入方法是(其中 ( A ) 页脚内容 页眉内容 int a,b scanf("%d%d",&a,&b); A.2 3 D.2,3 else y=x-1; 后,变量y的值是( A ) A.-1 B.0 C.1 8.下面程序的输出结果是( B ) main( ) { int x=5,y; if(x>0) y=1; y=0; if(x<0) y=-1; printf("%d",y); } A.-1 B.0 C.1 9.执行下面程序段后,输出字符B的个数是( B ) x=0; while(x<=5){ printf("B"); x+=2; } A.0个 B.3个 C.5个 10.在下述程序中,for循环执行的次数是( C ) 页脚内容 D.2 D.5 D.6个 页眉内容 main( ) { int i =0,j=10,k=2,s=0; for(; ;) { i+=k; if(i>j) { printf("%d\\n",s); break; } s+=i; } } A.4 B.5 C.6 D.7 11.若有定义:int a[10];则数组元素的下标的下限和上限分别是( C ) A.0和1 B.1和9 C.0和9 D.1和10 12.下列说法不正确的是( C ) ...A.一个源程序文件由一个或多个函数组成 B.一个C程序由一个或多个源程序文件组成 C.一个C程序以函数为独立的编译单位 D.一个C程序必须有一个main( )函数 13.在C语言中,确定函数返回值的类型由( D ) A.return语句中的表达式类型决定 C.调用函数时临时决定 B.调用该函数的主函数类型决定 D.定义函数时所指定的函数类型决定 14.若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是( D ) int a [ ]={0,1,2,3,4,5,6,7,8,9},*p; p=a; A.&(a+1) 15.若有以下说明: 页脚内容 B.a++ C.&p D.&p[i] 页眉内容 char s[10]=“ABCDEFGH”,*p=s; 不能表示字符C的是( B ) ..A.s[2] 16.有下列程序: func(int x, int y, int*jia, int*jian) {*jia=x+y; *jian=x-y;} main( ) {int i =10,j=3,x1,x2; func( i ,j,&x1,&x2 ); printf("%d,&d\\n",x1,x2);} 则其运行结果是( C ) A.0,0 B.10,3 C.13,7 D.7,13 B.s[3] C.s['c'-'a'] D.*(p+2) 17.设有结构体的定义如下: struct data{ int n; char c; float f; }; 则sizeof (struct data)的值是( C ) A.1 B.3 C.7 D.11 18.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是(B ) A.#include B.#include 19.设有说明:int x=12,y=3;则x¦y的值是( D ) A.0 B.3 C.12 D.15 20.测试文件是否结束函数的函数名是( A ) A.feof B.EOF C.eof D.FEOF 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后页脚内容 页眉内容 的括号内。错选、多选、少选或未选均无分。 21.下列设备中属于外存储设备的有( BCDE ) A.RAM D.软盘 B.光盘 E.磁带 C.硬盘 22.设a=1,b=3,c=0;下面表达式的值为1的有( ABCE ) A.!a&&b| |a&&(c+1) D.(a=0)&&(b=10) B.a-b+3 E.b>a&&a>c C.(a>b)==c 23.设有说明:char s[20];( BCD ) 下面各项中能够正确的将一个字符串"abcd"赋给s数组的有 A.s="abcd"; D.strcpy(s,"abcd"); B.gets(s); E.strcpy("abcd",s); C.scanf("%s",s); 24.关于结构体,下面各项中不正确的有( AC ) ...A.struct person{long bh; char *name; int age;} psl={9100,"wang",20},* pst; pst=psl; printf("%d",*pst→age); B.struct my_data {int num; struct my_data *next;}; C.struct test {char *course; char *class} D.struct worker {char name[9]; float gz;}Li={"Li Ping",532.67}; E.struct int_num {int i _num;struct int_num *next; }ione, *pi; pi=&ione; 25.设有说明:int x=1,y=2,z=3;则下面表达式的值为0的有( ACDE ) A.x&y&z D.z>>y B.x¦y¦z E.x&0xff00 C.x^x+y^y 三、简答题(本大题共4小题,每小题4分,共16分) 26.C语言中的运算符“=”与运算符“= =”的意义相同吗?为什么?不同。C语言中“=” 称为赋值号,赋值号左边只能是变量不能是表达式或常量。赋值号两侧不能互换,不表页脚内容 页眉内容 示相等,而“= =”称为等号,与数学中的“=”意义相同,符号两侧都可以使表达式 27.变量的存储类别分为哪几种?它们分别存储在什么区域?Aotu,static,extern,register四种。Aotu类型的局部变量存储在动态存储区。Static类型的静态变量和extern类型的外部变量存储在静态存储区。Register类型的变量存储在寄存器中。 28.试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。char s【3】【20】={"I am a boy", "you are a girl", "he is a teacher"}; 29.设有说明:int a[2][3]; 请用四种方式来表示数组元素a[1][2]。a[1][2],*(&a【0】【0】+1x3+2),*(a【0】+1x3+2),*(*a+1x3+2); 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65) #include"stdio.h" main( ) { char ch; ch=putchar(getchar( ) ); printf(",%d,%o,%c",ch+1,ch+1,ch+32);A,66,102,a } 31.阅读下面程序: void main(void) { int s=0,n=0,x; label: scanf("%d",&x); if(x>0){ s+=x; n++; printf("s=%d,n=%d,even=%f\\n",s,n,1.0,*s/n); } if(x!=0) 页脚内容 页眉内容 goto label; else printf("good bye!"); }s=12,n=1,even=12.0 s=17,n=2,even=8.5 s=30,n=3,even=10.0 good bye! 当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。 32.阅读下面程序,写出程序的运行结果。 char a [ ]={'9','8','7','6','5','4','3','2,'1','0','\\0'}; void main (void) { int i =8,j; for(j=0;j<4;j++) printf("%s\\n",&a[i -j ]); }10 210 3210 43210 33.请写出下面程序的运行结果。 long fun (int k ) { long fac; if(k= =0) return 1; else { fac=k* fun(k-1); printf("fac=%ld\\n",fac); } 页脚内容 页眉内容 return fac; } void main(void) { int n=3; printf("result=%ld\\n",fun(n+1)/n); }fac=1 fac=2 fac=6 fac=24 34.阅读下面程序,写出运行结果。 #include char *t, c, *p=s; for(t=s+strlen(s)-1;s void main (void) { char a [20]="abcdefg"; f(a); }gbcdefa gfcdeba gfedcba 35.阅读下面程序段,说明其功能: 页脚内容 页眉内容 int x, y=0,k; FILE* fp; fp=fopen("data.txt","rb"); for(k=0;k<5;k++) fread(&x,sizeof(int),1,fp),y+=x; printf("%d,"y); fclose(fp);计算并输出从data,txt中读出的5个整型数据的累加和 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素 的累加和并输出该累加和。 37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12 月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month” 页脚内容 页眉内容 页脚内容 页眉内容 全国2007年7月高等教育自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.微机中信息的最小单位是( B ) A.bit C.KB 2.组成计算机硬件系统的是(A ) A.控制器、运算器和内存储器 C.I/O设备、CPU和内存储器 3.(75)10的二进制的表示是( D ) A.()2 C.()2 B.()2 D.()2 B. CPU、显示器和键盘 D. 控制器、内存储器和I/O设备 B. byte D. word 4.字符串常数“CHINA”在内存中存储时占的字节数是( B ) A.5个 C.7个 B.6个 D.8个 5.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c 7.设有说明int x=0,y=0; 则执行if(x++)y=1+x; 页脚内容 B.2 D.4 B.%s D.%g 页眉内容 else y=2+x; 后,变量y的值是( A ) A.0 C.2 B.1 D.3 8.以下程序段所表示的数学函数关系是( B ) y=-1 if(x!=0) if(x>0) y=1;else y=0; 1(x0)A.y0(x0) 1(x0)1(x0)B.y1(x0) 0(x0)0(x0)C.y1(x0) 1(x0)1(x0)D.y1(x0) 0(x0)9.执行下面程序段后,输出字符A的个数是( B ) for(i=0;i<=5;i+=2) printf(″A″); A.0个 C.5个 B.3个 D.6个 10.若有定义char a[ ]= ″computer″;则存储字符m的数组元素是( C ) A.a[1] C.a[3] B.a[2] D.a[4] 11.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( C ) A.1 C.3 B.2 D.4 12.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( C ) A.自动(auto) C.外部(extern) B.静态(static) D.寄存器(register) 13.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为 ( D ) A.源文件的全部范围 B.本程序的全部范围 页脚内容 页眉内容 C.本函数的全部范围 D.从定义该变量的位置开始至本文件末尾 14.下列定义中,不是指针数组定义的是( D ) ..A.int*p[5]; C.int(*r)[6]; B.float*q[4]; D.char*w[7]; 15.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( B ) A.a,point,*&a C.*&point,*point,&a 16.下列程序的运行结果是(C ) #difine N 9 fun (char s[ ]) { char*p=s+4,*q=s; int i; for(i=0;i<4;i+ +,p+ +,q + +) { s[i]=*p; s[i+4]=*q } } main( ) { char ss[N]= ″ABCDEFGH″; fun(ss) printf(″%s\\n″,ss); } A.EFGHABCD C.ABCDEFGH 17.设有结构体的定义如下:( C ) struct cjd {long bh;int*q;char xm[9];}; 则sizeof(struct cjd)的值是 页脚内容 B.&*a,&a,*point D.&a,&*point,point B.EFGHEFGH D.ABCDABCD 页眉内容 A.14 C.16 B.15 D.17 18.设有说明:int x=0x15,y=0x0f;则x&y的结果是( B ) A.0x5 C.0xf0 B.0x15 D.0xf5 19.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( D ) A.#include B.#include 20.由FILE*fp;fp=\\fopen(″a:\\\\abc.txt″,″r+″);可以推知fopen 函数的原型是( A ) A.char *fopen(char,char); C.int fopen (char*,char*); B.FILE*fopen(char*,char*); D.FILF fopen(char* ,char*); 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面基本结构和特性中符合结构化程序设计的要求的有( BCDE ) A.选择结构 C.顺序结构 D.各结构之间只有一个入口,至多两个出口 E.各结构之间只有一个入口,一个出口 22.若有int x;float;y下面结果为整型数的表达式有(ABCE ) A.(int)(x+y) C.´a´+x E.x*y 23.设有定义:int a[2][3];下面关于数组元素引用正确的有(BCD ) A.a[0][3] C.a[2][1] E.a[2][3] 24.设有关于结构体类型的定义:( AC ) struct car { 页脚内容 B.循环结构 B.(int)x+y D.x+(int)y B.a[0][0] D.a[1][2] 页眉内容 char*name; float price; struct car *next; }*p,*head=NULL; 下面各选项中正确的有 A.p=(struct car*)MALLOC(sizeof (struct car); B.p=(struct car*)malloc (sizeof (struct car); C.p.next=head; D.p->next=head; E.p=(struct car *)malloc (sizeof(car); 25.设有说明:int u=1,v=5;则下列表达式的值为1的有( ACDE ) A.u&v C.u^u E.(u<<3)/5 三、简答题(本大题共4小题,每小题4分,共16分) 26.什么是常量?C语言中常量有哪几种类型? 27.用while循环结构完成下面程序段的功能。 s=0 for(i=1;i<=10;i++) s+=i; 28.若在一个函数中对变量a,b有如下定义: static int a; auto int b; 简述它们之间的异同。 29.设有说明:int a[3][4],(*p )[ 4]=a;请解释p的含义,并用p给出数组元素a[2][1]的二种表 示。 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65) #include ″stdio.h″ main() 页脚内容 B.v>>2 D.u¦v 页眉内容 { int k; k=getchar();putchar(k); printf(″,%d,%x,%c″,k,k,k+32); } 31.阅读下面程序,写出运行结果。 main() { int x,sum=0; loop1: scanf(″%d″,&x); if(x!=8) { if(x%2= =0) { sum+=x; printf(″sum =%d\\n″,sum); } goto loopl; } sum-=x; printf( ″sum=%d\\n″,sum); } 当程序执行时输入数据1 2 3 32.阅读下面程序,写出运行结果。 main() { int a[3][3],i,j; for (i=0;i<3,i+ +) 页脚内容 4 5 6 7 8 ↙ ,写出程序运行结果。 页眉内容 for(j=0,j<3;j+ +) a[i][j]=i+j for(i=0;i<3;i++) { for(j=0;j<=i;j+ +) printf(″%2d″,a[i][j]); printf(″\\n″); } } 33.阅读下面程序,写出运行结果。 long factor (int m) { long int fc; if(m= =0¦¦m= =1) fc=1; else fc=factor(m-1)*m; return(fc); } main() { int n; long int fac; for(n=1;n<5;n++) { fac=factor(n); printf(″% Id\\n″,fac); } } 页脚内容 页眉内容 34.阅读下面程序,写出运行结果。 void fl(char a[ ],char b[ ]) { int i; for(i=0;a[i];i+ +) b[i]=a[i]; b[i]=´ \\0 ´; } void f2(char *c,char*t) { while(*c+ + = * t+ +); } main() { char a[20]= ″basic″,b[20]= ″fortran″,c[20]= ″pascal″; char*p=b,*q=c; fl(b,a); printf(″%s\\n″,b); f2(p,q); printf(″%s\\n″,b); } 35.阅读下面程序段: struct number { int u[2]; }v={11,15},*p=&v; int x; 请分析下面语句的含义: x=(*p),u[0]>p->u[1]?(*p).u[0]:p->u[1]; 页脚内容 页眉内容 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.用以下近似公式编一个求的近似值的程序。 4 11111,其中n的值由键盘输入。 (1)n13572n137.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的lx.dat文 件中。(第一行的″$″在第20列) $ $ $ $ $ $ $ $ $ $ $ $ $ 页脚内容 页眉内容 全国2008年4月自学考试历年试卷计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的页脚内容 页眉内容 括号内。错选、多选或未选均无分。 1.存储容量1KB等于( B ) A.23字节 C.220字节 2.在计算机中,指令通常是由( A ) A.操作码、操作数组成 C.反码、补码组成 B.源操作数、目标操作数组成 D.直接寻址、目的寻址组成 B.210字节 D.230字节 3.与十进制数39等值的二进制数是( A ) A. C. B. D. 4.下列设备中属于输出设备的是( D ) A.扫描仪 C.鼠标 B.键盘 D.显示器 5.整数-2在机器内存中的表示是( B ) A.00010 C. B.11110 D.11111 6.下列运算符中优先级最低的是( D ) A.> C.% B.! D.= = 7.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是( B ) A.-6 C.-4 B.-5 D.-3 8.以十进制无符号形式输出整数的格式说明符是( A ) A.%u C.%o 9.下列程序段的输出结果是( B ) void main(void) { iny y=1,x=5; 页脚内容 B.%x D.%d 页眉内容 if(x<0)y=-1; if(x>=0)y=0; printf("%d\\n",y); } A.-1 C.1 10.执行如下程序段后,x的值是( D ) int x=1,y=-1; if(y<0)x-=y; else x+=y; A.-1 C.1 B.0 D.2 B.0 D.5 11.执行while(表达式)循环的条件是( C ) A.当表达式的值为0时 C.当表达式的值非0时 12.下列程序段输出的结果是( A ) for(i=1;i<3;i+ +) for(j=1;j<3;j+ +) printf("%d",i+j); A.2 3 3 4 C.2 3 3 4 B.2 3 4 D.2 3 4 B.仅当表达式的值为1时 D.当表达式的值不为1时 13.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是( B ) A.1 C.3 B.2 D.4 14.下列关于C语言程序说法正确的是( D ) A.C语言程序总是从有定义的函数起顺序执行 B.在C语言程序中,被调用函数必须在main函数中定义 C.C语言程序中的main函数必须放在程序的开始部分 D.C语言程序总是从main函数起开始执行 页脚内容 页眉内容 15.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是 A.&a+1 B.&a+ + C.&a D.&a[i] 16.下列关于结构体类型定义正确的是( C ) A.struct ABC B.struct ABC { { int a int a; char b char b; char*p char * p; } } C.struct ABC D.struct ABC { { int a; int a, char b; char b, char * p; char *p, }; }; 17.下列位运算符中,表示按位异或操作的是( C ) A.~ B.│ C.^ D.& 18.下列各个位运算符的优先级从左到右依次升高的是( C )A.>>│& ~ B.│>> & ~ C.│& >> ~ D.~│& >> 19.设有说明:int u=1,v=3;则表达式u<<= v的值是( D ) A.0 B.1 C.3 D.8 20.如果文件存储的是数据在内存中存放的字节形式,则该文件是(A.ASCII文件 B.文本文件 C.二进制文件 D.设备文件 二、多项选择题(本大题共5小题,每小题2分,共10分) 页脚内容 (D ) C ) 页眉内容 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.存储在下列哪些设备中的信息可以长期保存?( BCDE ) A.RAM B.ROM C.硬盘 D.软盘 E.光盘 22.下列语句中正确的有( ACD ) A.if(x>y); B.if(x=y)&&(x!=0)x+=y; C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y); D.if(x D.for(k=1;k>―10;k+ +); E.for(k=1;k=10;k+ +,k――); 24.设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有( CDE A.a[2] B.*a C.*a+2 D.a[0]+2 E.&a[0][2] 25.设有关于结构体类型的定义:( AD ) struct data { int num; struct data *next; } *p,* head=NULL; 下列语句中正确的有 A.p=(struct data *)malloc(sizeof(struct data)); B.p=(struct data )malloc(sizeof(struct data)); C.p=(struct data *)malloc(sizeof(data)); 页脚内容 )页眉内容 D.p->next=head; E.p.next=head; 三、简答题(本大题共4小题,每小题4分,共16分) 26.C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么? 27.简述C语言标准库函数strcpy 的格式(或函数原型)与功能。格式:strcpy(字符数组1.,字符数组2)功能:把字符数组2中的字符串复制到字符数组1中 28.请按照下列要求写出相应的C语句。 假设float类型的变量x1和x2已经定义过,且x1已经初始化为7.3。 (1)定义指向float类型变量的指针变量fpt;float*fpt (2)使fptr指向x1;fptr=&x1 (3)利用fptr,将fptr指向变量的值赋给x2;x2=*fptr (4)利用fptr,输出fptr指向变量的值。printf=(\"%f\ 29. fread(stu,size,n,fp);中stu、size、n和fp的含义各是什么?Stu是内存中存放读取数据的首地址;size是预读取的一个数据块的字节数;n指一次读取数据块的个数;fp指文件指针 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.请阅读分析下列程序,然后写出运行结果。 main( ) { int a=0,b=1; printf("a=%d,b=%d\\n",a,b); a+=b;b+=a; printf("a=%d,b=%d\\n",a,b); }a=0,b=1 a=1,b=2 31.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结 果。 main ( ) { int x,y; scanf("%d",&x); 页脚内容 页眉内容 if(x>2&&x<=10) y=x *(x+2); else if(x>-1&&x<=2) y=2*x; else if(x<-1)y=x-1; if(y!=-1) printf("%d,y); else printf("error"); }0 35 32.请阅读分析下列程序,然后写出程序的循环次数和运行结果。 main(void) { int i; for(i=1; i<6; i+ +) { if(i%2) { printf("@");continue; } printf("*"); } printf("\\n"); }循环5次 @*@*@ 33.请阅读分析下列程序,然后写出程序的运行结果。 void fun( ); void main(void) { 页脚内容 页眉内容 fun( ); fun( ); } void fun( ) { static int a[3]={0,1,2},b=10; int i; if(b= =10) { for(i=0;i<3;i+ +) a[i]+=a[i]; for(i=0;i<3;i+ +) printf("%d,",a[i]); printf("b=%d\\n",b); b+ +; } else { for(i=0;i<3;i+ +) a[i]*=a[i]; for(i=0;i<3;i+ +) printf("%d,"a[i]); printf("b=%d\\n",b); } } 0,2,4,b=10 0,4,16,b=11 34.请阅读分析下列程序,然后写出程序的运行结果。 void main(void) { int a[ ]={1,2,3,4,5,6},*p; 页脚内容 页眉内容 p=a; p+ +; *(p+3)+=2; printf("%d\\n",*p); printf("%d\\n",*(p+3)); }2 7 35.设有下列创建单向链表的部分程序: #include"malloc.h" #include"string.h" struct automobile { char type[20]; int load; struct automobile *next; } * head=NULL; void main(void) { struct automobile *p; char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"}; int automobile_load[3]={24,18,42},j; for(j=0;j<3;j+ +) { p=(①______struct automobile *________)malloc(sizeof(struct automobile)); strcpy(②___ p->type_______,automobile_type[j]); p->load=automobile_load[j]; p->next=head; head=p; } } 页脚内容 页眉内容 请阅读分析程序,然后写出①和②下划线处应该填写的内容。 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。 37.设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。 页脚内容 页眉内容 页脚内容 页眉内容 全国2008年7月自考计算机基础与程序设计试卷 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.一个完整的计算机系统应该包括( B ) A.主机和外设 B.主机和操作系统 C.硬件系统和系统软件 D.硬件系统和软件系统 2.若用八位二进制表示一个整数,则-4在计算机中的表示是( A. B. C. D. 3.下列转义字符中,表示回车的是( C ) A.\\0 B.\\n C.\\r D.\\f 4.若定义double d;则d在内存中分配的字节数是( D ) A.1个 B.2个 C.4个 D.8个 5.下列表达式中运算结果为3的表达式是( B ) A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 6.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是( C )A.-6 B.-5 C.-4 D.-3 7.在printf语句中,格式说明符u表示( C ) A.以十进制带符号形式输出整数 B.以十六进制带符号形式输出整数 C.以十进制无符号形式输出整数 D.以十六进制无符号形式输出整数 页脚内容 C ) 页眉内容 8.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是(D ) if(aB.5 D.7 9.关于switch中的表达式,正确的说法是( D ) A.它必须是算术表达式 B.它必须是关系表达式 C.它必须是逻辑表达式 D.它可以是任意类型的表达式 10.对do语句while(表达式);结构的循环,下列说法正确的是( ) A.当表达式的值为非零时不执行循环体 B.循环体至少被执行一次 C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次 11.只能在循环语句中用于结束本轮循环的语句是( ) A.break; B.continue; C.goto D.if 12.若有定义int a[4]={1,2,3,4};则a[(a[1]*a[3]+a[0])3-1)]的值是( ) A.1 C.3 B.2 D.4 13.若有定义int a[3][5];则数组a在内存中分配的字节数是( ) A.8 B.15 C.24 D.30 14.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?( ) A.gets(strl) B.gets(strl,str2) C.getchar(strl) D.getchar(strl,str2) 页脚内容 页眉内容 15.下列关于函数的描述中正确的是( ) A.C程序中有调用关系的所有模块必须放在同一个源文件中 B.函数必须有返回值,否则不能使用函数 C.C程序必须由一个或一个以上函数构成 D.C函数既可以嵌套定义又可以嵌套调用 16.设有下列程序,则( ) int d=10; main() { int a=3;printf(“%d,%d\\n”,a,d); } A.a是全局变量,d是全局变量 B.a是局部变量,d是全局变量 C.a是全局变量,d是局部变量 D.a是局部变量,d是局部变量 17.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( ) A.p1=m; B.&p2=n; D.*p1=&m; C.pl=&m;p2=p1; 18.下列为指针数组定义的是( ) A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6]; 19.设有说明:FILE*fp;对于fp=fopen(″c:\\\\abc.dat″, ″rb″);语句,下列说法中不正确的是( ) A.fp将指向abc.dat文件 B.以只读方式打开二进制文件 C.打开文件的文件名是abc.dat D.以读写方式打开ASCII码文件 20.ASCII码文件的结束可以用符号常量EOF表示。EOF的值是( ) A.0 C.-1 B.1 D.不能确定的值 页脚内容 页眉内容 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下列数据数值相等的有( ) A.()2 B.(377)8 C.(255)10 D.(FF)16 E.(256)10 22.以下if语句中没有语法错误的有( A.if(x>0)printf(″%f″,x); else printf(″%f″,x); B.if(x>0){x=x+y;printf(″%f″,x)} else printf(″%f″,x) C.if(x>0){x=x+y;printf(″%f″,x);} else printf(″%f″,x); D.if(x>0)x=x+y;printf(″%f″,x); else printf(″%f″,x) E.if x>y x++; else x--; 23.设有程序如下: main() { int i,j,a[]={1,3,5,7,9,11,13,15}; i=5; switch(i) { default;printf(″%d\\n″,a[i]); case 1:printf(″%d\\n″,a[3]); case 2:printf(″%d\\n″,a[++i]);break; case 3:printf(″%d\\n″,a[--i]); } 页脚内容 )页眉内容 } 上述程序的输出结果不包括( ) A.5 C.9 E.13 24.设有定义及赋值:( ) int a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a; 则引用a中值为5的元素的正确形式是 A.a[5] B.a[4] C.*(a+5) E.*(p+5) 25.设有说明:int u=1,v=3,w=7;下列表达式的值为7的有( ) A.u&v|w C.u^v|w E.u^w|v 三、简答题(本大题共4小题,每小题4分,共16分) 26.C语言中整型常量有几种形式,它们是如何表示的? 27.写出语句if(表达式)语句1 else语句2的执行过程。 28.若定义char *str;然后用gets(str);输入字符串可以吗?为什么? 29.单个字符的读函数fgetc(fp),其中fp表示什么?该函数的功能是什么? 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下面程序并写出运行结果。 main() { int a=47,x,y,z,w; x=a/2; y=a%2; z=a++; w=++a; 页脚内容 B.7 D.11 D.p[5] B.u|v|w D.w&v|u 页眉内容 printf(″%d,%d,%d,%d″,x,y,z,w); } 31.阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果。 main() { int x; scanf(″%d″,&x); if(x%5= =0 & & x%7= =0) printf(″yes″); else printf(″no″); } 32.阅读下面程序并写出运行结果。 main() { static int a[]={5,3,7,2,1,5,4,10}; int s=0,k; for(k=0;k<8;k+ =3) { s+ =a[k]; printf(″a[%d] =%d,s=%d\\n″,k,a[k],s); } } 33.阅读下面程序并写出运行结果。 check(int n,int k) { int m; do{ m=n%10;n=n/10; 页脚内容 页眉内容 }while(k- -); return(m); } main() { int j,y=2345; for(j=1;j<4;j++) printf(″j=%d,number is %d\\n″,j,check(y,j)); } 34.阅读分析下面程序并写出运行结果。 main() { char *a[]={″Pascal″,″C Language″,″dBase″,″Cobol″}; int j; for(j=3;j>=0;j- -) printf(″%s\\n″,a[j]); } 35.阅读下面程序并说明语句:x=p->d[0]>p->d[1]?p->d[0]:p->d[1];的含义,然后写出程序的运行结果。 struct number { int d[2]; } n={12,8},*p=&n; main() { int x; x=p->d[0]>p->d[1]?p->d[0]:p—>d[1]; printf(″%d″,x); } 五、程序设计题(本大题共2小题,每小题12分,共24分) 页脚内容 页眉内容 36.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。 37.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。 (1)按n行m列输出该二维数组; (2)求出该二维数组全部元素的平均值; (3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。 页脚内容 页眉内容 全国2009年4月自考计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.衡量存储器的基本单位是( ) A. bit B. byte C. KB D. word 2.Windows操作系统是( ) A. 单用户、单任务 B. 单用户、多任务 C. 多用户、单任务 D. 多用户、多任务 3.组成微机主存储器的是( ) A. CD—ROM和RAM B. 硬盘和RAM C. 硬盘和CD—ROM D. ROM和RAM 4.下列数据中最大数是( ) A. ()2 B. (123.4)8 C. (84.5)10 D. (55)16 页脚内容 页眉内容 5.在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键( ) A. Alt+F1 B. Alt+F5 C. Alt+F9 D. Alt+F10 6.下列是合法C语言常量的是( ) A. e B. 7E4.0 C. E4 D. -9.13E-30 7.设有int a=3,b=-4,c=5;表达式(a8.以指数形式输出实型数的格式说明符是( ) A. %u B. %x C. %f D. %e 9.下列程序的输出结果是( ) main( ) { int x=5,y; if(x<0)y=-1; if(x==0)y=0; y=1; printf(″%d″,y); } A. -5 B. -1 C. 0 D. 1 10.下列程序段的输出结果是( ) i=1; while(i<3){ j=1; while(j<=i){ printf(″%d″,i+j); j++; } 页脚内容 ) 页眉内容 i++; printf(″\\n″); } A. 2 3 3 4 B. 2 3 4 C. 2 3 D.2 3 4 3 4 11.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是( ) A. puts (str1,str2) B. puts (str2) C. putchar (strl) D. putchar (str1,str2) 12.下列关于函数的说明中不正确的是( ) A. 函数名后面可以不要一对圆括号 B. 函数参数类型必须作说明 C. 函数形参个数可以是一个、多个或没有 D. 空函数被调用时不做任何工作 13.若有定义:int a[5];则a数组中首元素的地址可以表示为( ) A. &a B. a+1 C. a D. &a[1] 14.设有char s=″\a\\017bc″;则指针变量s指向的字符串在内存中所占的字节数是 ( ) A. 5 B. 6 C. 7 D. 9 15.下列关于结构体类型的定义正确的是( ) A. struct tree B. struct tree { int branch; { int branch; char name[20]; char name[20], char relation; char relation, }; }; C. struct tree D. struct tree { int branch { int branch; char name[20] char name[20]; 页脚内容 页眉内容 char relation char relation; } } 16.下列各个位运算符的优先级从左到右依次降低的是( ) A. | & ˆ > > B. ˆ & > > | C. ~ > > ˆ | D. ~ > > | ˆ 17.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是( ) A. 3 B. 5 C. 6 D. 8 18.设有下列程序:( ) #include″stdio.h″ main( ) { unsigned x=8,y=2; printf(″%d\\n″,y|~(x&y)); } 该程序的运行结果是 A. -1 B. 0xff C.127 D. 65535 19.若有定义∶# define P(x) x x x+1和说明语句:int a=2;则表达式P(2)的值是( ) A. 6 B. 8 C. 9 D. 10 20.在语句fgets(str,n,p);中,下列说法不正确的是( ) A. str是字符指针 B. 一次可以读n个字符 C. str是字符数组名 D. 一次可以读n-1个字符 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下列关于计算机的叙述中正确的是( ) 页脚内容 页眉内容 A. CPU是计算机系统的部件 B. I/O设备不是计算机系统的部件 C. 计算机区别于其他计算工具的本质特点是能存储数据 D. “裸机”是指不配置任何软件的计算机 E. 计算机(武汉自考)指令是控制计算机进行操作的命令 22.设有int a=3,b=-5;下列表达式的值等于1的有( ) A. a&&b<0 B. fabs(b)-a-1>0 C. a>b&&b<0 D. (a,2,-5)==(b,2,a) E. a+b<0 23.下列关于break、goto、continue语句的说法中正确的是( ) A. break语句能够用于循环语句中 B. break语句不能用于switch语句中 C. goto语句可以用于直接从多层循环中退出 D. continue语句可用于跳出循环体 E. continue语句不能用于switch语句中 24.若有定义:int y[4][4],( p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是( ) A. printf (″%d\\n″,&y[2][0]); B. printf (″%d\\n″, y[2][0]); C. printf (″%d\\n″,p[2][0]); D. printf (″%d\\n″, y[2]); E. printf (″%d\\n″, ( (y+2)); 25.设有关于结构体类型的定义: struct worker { int id; char name; float salary; } wl={,″Lihua″,2560.50}, p; 下列选项中语句语法正确的有( ) A. p=wl; B. p=&wl; C. p->id=wl->id D. p->id=wl.id; 页脚内容 页眉内容 E. p.salary=wl.salary; 三、简答题(本大题共4小题,每小题4分,共16分) 26.有无default对switch语句有什么不同的影响? 27.写出do-while语句的一般形式及其执行过程。 28.定义 char a[ ]=″I am a student.″, str=a;等价于 char a[ ]= ″I am a student.″, str; str=a; 吗?为什么? 29.设有说明: struct vegetable { char part; char color; } clove; char part _ of _ vegetable [3]={″AA″,″BB″,″CC″}; char seven _ color={″11″,″22″,″33″,″44″,″55″,″66″,″77″}; 请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句。 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读分析下面程序后,写出程序的运行结果。 # include ″stdio.h″ main ( ) { int a=978,x,y,z,i,j,w; x=a/100; y=(a-100 x)/10; z=a-10 y-100 x; i=y>z? z:y; j=y<=z? z:y; 页脚内容 页眉内容 w=100 x+10 i+j; printf(″%d,%d,%d,%d\\n″,x,y,z,w); } 31.阅读分析下面程序后,写出程序的运行结果。 # include ″stdio.h″ main( ) { int n,m; for(n=1;n<=5;n++) { for(m=1;m<=4;m++) printf(″%4d″,m n); printf(″\\n″); } } 32.阅读分析下面程序后,写出程序的运行结果。 #include″stdio.h″ main ( ) { int arr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<=4;i++) { k+=arr[i]+i; printf(″%5d″,k); } } 33.阅读分析下面程序后,写出程序的运行结果。 #include″stdio.h″ 页脚内容 页眉内容 int fun(int x) { int p; if(x==0||x==1) return(3); p=x-fun(x-2); printf(″%5d″,p); return (p); } main( ) { fun(9); } 34.阅读下面程序,分析cat函数的功能并写出程序的运行结果。 #include″stdio.h″ void cat(char s,char t) { while( s) s++; while(( s++= t++)!=′\\0′); } main( ) { char sl[80]=″computer″,s2[80]=″Pentium_″; cat(s2,s1); printf(″% s\\n″,s2); } 35.阅读分析下面部分程序: struct cjd { char name[9]; 页脚内容 页眉内容 float score[2][2]; } x; float t[2][2]={70.5,65.0,83.0,92.5}; int j,k; 请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。 37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:\\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人。 页脚内容 页眉内容 全国2009年7月自考计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.内存每个基本单元都有唯一的序号,这个序号称为( ) A.地址 B.字节 C.代码 D.字 2.计算机对编译型高级语言的执行方式是( ) A.逐条语句边解释边执行,即解释一条就执行一条 B.将整个程序编译完成后再执行,不生成目标代码 C.将源程序编译成目标程序,执行连接后的程序 D.将源程序解释完毕后再执行 3.下列转义字符中,表示换行的是( ) A.\0 C.\r B.\n D.\f 4.unsigned long型数的取值范围是( ) A.-215~(215-1) B.-231~(231-1) C.0~(216-1) D.0~(232-1) 5.设有int a=3;表达式a十=a *=a *=a的值是( ) A.3 B.9 C.81 D.162 6.下列四种运算符中,优先级最低的是( ) 页脚内容 页眉内容 A.>= B.! C.&& D.|| 7.下列程序段的输出结果是( ) main( ) { int a=5,b=3,c; c=a;a=b;b=c; printf(″%d,%d\n″,a,b); } A.3,5 B.5,3 C.5,8 D.8,3 8.下列程序段所表示的逻辑关系是( if(aD.x= 9.执行下列程序段后,i的结果是( int i=10; switch(i){ case 9:i+=l;break; case 10:i+=l;break; case 11:i+=1;break; default:i+=1;break; } A.10 B.1l C.12 D.13 10.下列程序段的输出结果是( )页脚内容 ) ) 页眉内容 a=100; do a=a+l; while(a>120); printf(″%d″,a); A.100 C.120 B.101 D.121 11.关于break和continue语句,下列说法正确的是( ) A.在循环体中可以用break语句结束本次循环 B.在循环体中可以用continue语句结束本次循环 C.break语句仅能使用在switch结构中 D.可以使用continue语句跳出switch结构 12.若有定义int a[4]={l,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于( ) A.1 B.2 C.3 D.4 13.定义如下变量和数组,则下列程序段的输出结果是( ) int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) if(i % 2!=1) printf(″%d″,x[i][i]); A.19 B.17 C.37 D.39 14.若有定义static char str2[10],strl[ ]=″China″;欲将strl中的字符串拷贝到str2中去,下列正确的语句是( ) A.strcpy(str2,strl); B.strcpy(strl,str2); C.strcpy(″China″,str2); D.strl=str2; 15.下列关于C程序的说法中不正确的是( ) A.一个源程序文件由一个或多个函数组成 B.一个C程序可以有多个名字为main的函数 C.一个C程序由一个或多个源程序文件组成 D.一个C程序必须有一个main函数 页脚内容 页眉内容 16.用数组名作为函数调用时的实参,实际上传递的是( ) A.数组全部元素的值 B.数组第一个元素的值 C.数组的首地址 17.设有函数( ) void print _value(int * x) {printf(″%d\\n″,+ + * x);} 执行程序段int a=25;print_value(&a);的正确输出是 A.23 B.24 C.25 D.26 D.数组元素的个数 18.语句float *p [6];的含义是( ) A.p是一个数组,有6个元素,每个元素都是浮点数 B.p是一个指针,指向有6个浮点数据的数组 C.p是一个指针数组,有6个元素,每个元素都是浮点型指针 D.p是一个指针,指向一个浮点数 19.设有下列程序( ) # include ″stdio.h″ void main(void) { unsigned x=1,y=2; printf(″%d\\n″,~(x&y)); } 该程序的运行结果是 A.-1 B.0 C.1 D.2 20.设有说明:FILE * fp;对于fp=fopen(″c:\\\\abc.dat″,″r+″);语句,下列说法正确的是 ( ) A.打开ASCII文件读写 B.打开二进制文件读写 C.打开ASCII文件只读 D.打开二进制文件只读 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号页脚内容 页眉内容 内。错选、多选、少选或未选均无分。 21.下列数据中等值的有( ) A.(0.100)2 B.(0.101)2 C.(0.5)8 E.(0.A)16 22.下列有关switch语句的说法中正确的有( ) A.switch后面的表达式可以为任意类型 B.case后的每个常量表达式的值必须互不相同 C.若case后面有两个或两个以上的执行语句,必须加花括号 D.一个case对应一组执行语句,多个case不可共用同一组执行语句 E.default部分可有可无 23.下列对数组赋初值正确的有( ) A.int a[ ][ ]={l,2,5,8,3,7}; B.int a[ ][3]={1,2,5,8,3,7}; C.int a[2][3]={1,2,5,8,3,7}; D.int a[2][ ]={1,2,5,8,3,7}; E.int a[3][3]={l,2,5,8,3,7}; 24.若有说明:int a[ ]={1,2,3,4,5,6,7,8,9,0},i;当0≤i<10时,下列对数组元素地址正确的表示有( ) A.&a+l B.a+l C.a++ E.a+i 25.下列关于结构体类型的定义正确的有( ) A.struct river B.struct river C.struct { { { int branch; int branch; int branch; char name[20]; char name[20]; char name[20]; }; } } D.struct E.struct river 页脚内容 D.(0.625)10 D.&a[i] 页眉内容 { { int branch; int branch; char name[20]; char name[20]; }; struct river * next; }; 三、简答题(本大题共4小题,每小题4分,共16分) 26.假设字长为8位,请写出-1的原码和补码。 27.写出for语句的一般形式并分析循环体被执行的条件。 28.字符数组的初始化与字符串指针变量的初始化有什么不同? 29.语句fwrite(stu,size,n,fp);中stu、size、n和fp的含义各是什么? 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 void main (void) { int a=987,b=l00,x,y; y=b; x=a/b; print (\"%d,%d\\n\} 31.阅读下列程序,若输入0,3并回车,则程序的输出结果是什么? void main(void) { int x,y,z; scanf (\"%d,%d\&x,&y); if(x 页眉内容 while(k<=100){ total+=k; k++;} print(\"total=%d\\n\} 33.阅读下列程序并写出运行结果(注:A的ASCII码值为65,a的ASClI码值为97)。 void main(void) { int i=64; char s[20],* p=s; while(i++<=73){ * p=i%2==0? i+32:i; p++; } * p=′\\0′; printf(\"%s\\n\} 34.阅读下列程序并写出运行结果。 int fib(int n) { static int f0=0,fl=l,i,f; for(i=3;i<=n;i++){ f=f0+fl;f0=fl;fl=f; printf(\"f0=%d,fl=%d\\n\} return(f); } void main(void) { printf(\"%d\\n\} 页脚内容 页眉内容 35.阅读下列程序并写出程序的运行结果。 #include\"string.h\" #include\"malloc.h\" struct planet { char name[20]; double weight; struct planet * next; } * head=NULL; void main(void) { struct planet * p; char * planet_name[3]={\"earth\double planet_weight[3]={.565,.437,.512}; int j; for(j=0;j<3;j++) { p=(struct planet * )malloc(sizeof(struct planet)); strcpy(p->name,planet_name[j]); p->weight=planet_weight[j]; p->next=head; head=p; } p=p->next; printf(\"%s,%lf\\n\} 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.从键盘上输入20个整数,求其中正数的累加和并输出结果。 37.在文本文件c:\\pxl.dat中有10个实型数据(每两个数之间用逗号隔开),编程将这10个数按从小到大排序后,写到文本文件c:\\xpl.dat中。 页脚内容 页眉内容 页脚内容 页眉内容 全国2010年4月高等教育自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.在Turbo C 2.0中,可激活主菜单的键是( ) A.F1 C.F9 B.F5 D.F10 2.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是( ) A.1个 C.4个 B.2个 D.8个 3.若有下列程序段,欲使x=5,y=6,对应正确的输入方法是(其中 scanf(″%d%d″,&x,&y); A.x=5 y=6 4.下面程序段的输出结果是( ) main() {int a=2,b=5; printf(″a=%d%%,b=%d%%″,a,b);} A.a=2,b=5 B.a=2%,b=5% C.a=%2,b=%5 D.a=%d,b=%d 5.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是( ) A.(exp!=0)? a++∶b-- C.(exp==1)? a++∶b-- B.(exp==0)? a++∶b-- D.(exp!=1)? a++:b-- 6.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是( ) 页脚内容 页眉内容 A.表达式1 B.表达式2 C.表达式3 D.表达式l和表达式3 7.设有下列程序:( ) void main(void) { int x[4]={1,3,5,7},i; i=0: printf(\"%d\",x[i++]); } 其输出结果是 A.1 B.3 C.5 D.7 8.下列关于函数的说法中,不正确的是( ) A.函数名后面一定要一对圆括号 B.空函数被调用时不做任何工作 C.函数形参个数可以是一个、多个或没有 D.函数参数类型可不作说明 9.指向与文件参数有关的结构体类型的指针变量称为( ) A.函数指针 B.整型指针 C.字符型指针 D.文件指针 10.计算机对解释型高级语言的执行方式是( ) A.逐条语句边解释边执行,即解释一条就执行一条 B.将整个程序编译完成后再执行,不生成目标程序 C.将源程序编译成目标程序,生成并保留目标程序然后执行 D.将源程序解释完毕后再执行 11.设有int x=2,y,z;执行z=y=x——;后变量y的值是( ) A.0 B.1 C.2 D.3 12.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是(void main(void) 页脚内容 ) 页眉内容 { int x; scanf(\"%d\",&x); if(x + + >5)printf(\"%d\); else printf(\"%d\n\",x——); } A.7和5 B.6和3 C.7和4 D.6和4 13.在下列选项中,没有构成死循环的程序段是( ) A.int i=100; B.for(;;); while(1) { i=i%100+1; if(i>100) break;} C.int k=1000; D.int s=36; do{++k;}while(k>10000); while(s);一一s; l4.定义如下变量和数组 int k; int x[3][3]={9,8,7,6,5,4,3,2,l}; 则执行下面语句 for(k=0;k<3;k++) if(k%2)printf(\"%5d\",x[k][k]); 后输出结果是( ) A.3 B.5 C.7 D.9 l5.设有下列程序: ff( ) {int c=9; static int a=1,b=4; if(b==4){a+=c;b++;} else {a+=c;b——;} 页脚内容 页眉内容 printf(\"a=%d,b=%d\n\",a,b);} main( ) {ff( );ff( );} 则该程序执行后,显示的结果为( ) A.a=10,b=5 B.a=10,b=4 a=19,b=5 a=l9,b=5 C.a=10,b=4 D.a=10,b=5 a=19,b=4 a=19,b=4 16.下面能正确进行字符串赋值操作的是( ) A.char s[5]={\"ABCDE\ B.char s[5]={′A′,′B′,′C′,′D′,′E′}; C.char *s;s=\"ABCDE\"; D.char *s;scanf(\"%s\",s); 17.下面程序段的运行结果是( ) chars *s=\"abcde\"; s+=2 printf(\"%d\",s); A.cde B.字符′c′ D.无确定的输出结果 C.字符′c′的地址 18.下面关于结构体类型变量定义正确的是( ) A.struct bunding { int area=12345; char *name=\"No1 Hotel\"; } bl; B.struct building{ int area=12345; char *name=\"Nol Hotel\"; } b1;. C.building { int area=12345; char *name=\"No1 Hotel\"; } b1; D.STRUCT building { 页脚内容 页眉内容 int area=12345; char *name=\"Nol Hotel\"; } b1; 19.设有下面程序: # include\"stdio.h\" void main(void) { unsigned x=1,y=3,z=5; printf(\"%d\n\",z^x&y); } 该程序的运行结果是( ) A.0 B.3 C.4 D.5 20.设有说明: int u=l,v=3,w=5; 表达式:u<<=(v|w)的值是( ) A.1 B.5 C.13 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面能执行循环结构的语句有( ) A.if语句 B.while语句 C.do—while语句 D.for语句 E.switch语句 22.下面合法的C语言转义字符有( ) A.\\123 B.\\xab C.\\\\ D.\88 E.\n 页脚内容 D.128 页眉内容 23.以下关于函数和变量的说法中正确的有( ) A.不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.一个函数内部定义的变量只能在本函数范围内有效 D.在一个函数内部的复合语句中定义的变量可在本函数范围内有效 E.如果全局变量与函数内定义的局部变量同名,则在函数内局部变量无效 24.设变量Vo5的地址已赋给指针变量inV,则下列关系表达式的值为1的有( ) A.Vo5==&inV B.Vo5==* inV C.inV==* Vo5 D.inV==&Vo5 E.Vo5==inV 25.设有说明:int u=0,v=l,z=2; 则下列表达式中结果为-l的有( ) A.v=~u B.u=u|~(v&z) C.v=(u|z)<<1 D.u=~(u|z) E.v&=(~u) 三、简答题(本大题共4小题,每小题4分,共16分) 26.函数fclose()的功能是什么? 27.简述break语句和continue语句在循环体中的功能。 28.简述机器语言、汇编语言和高级语言各自的特点。 29.将下面的各种运算符按优先级从高到低排列出来。(要同优先级的用“、”号分隔,不同优先级的由高向低用“→”号分隔) ,、<=、>=、[ ]、++、%、+、&&、/ 四、阅读理解题(本大题共6小题,每小题5分,共30分) 30.写出以下程序的功能。如果输入14,写出程序的输出结果。 void main(void) { int x; scanf(″%d″,&x); if(x%5==0&&x%7==0) 页脚内容 页眉内容 printf(″yes″); else printf(″no″); } 31.阅读下面的程序并回答问题 main( ) { char a[20]=″″; int i; i=8; printf(″%s\n″,&a[i-3]); } (1)数组中a[10]号元素中存储的是什么字符? (2)请写出程序的运行结果。 32.写出下面程序的运行结果。 main( ) { fun( ); fun( );} fun( ) { int a[3]={0,1,2},b=10;int i; if (b==10){ for(i=0;i<3;i++) a[i]+=a[i]; for(i=0;i<3;i++) printf(″%d,″,a[i]); printf(″b=%d\n″,b);b++; } else { for(i=0;i<3;i++) a[i]*=a[i]; for(i=0;i<3;i++) 页脚内容 页眉内容 printf(″%d″,a[i]); printf(″b=%d\n″,b); } } 33.写出下面程序的运行结果。 main( ) { int x=1987,a,b,c,y; a=x/100; b=x%100/10; c=x%100%10; y=100*c+l0*b+a; printf(″c=%d,b=%o,a=%x,y=%d″,c,b,a,y); } 34.分析下列两个程序的区别,并写出它们的运行结果。 void main(void) void main(void) { { int y=0,s,k; int y=0,s,k; for(k=0;k<6;k++) for(k=0;k<6;k++){ s=k*k; s=k*k; y+=s; y+=s; } printf(″y=%d\n″,y); printf(″y=%d\n″,y); } } 35.写出下面程序的功能以及程序的运行结果。 swap(int.*p1,int*p2) {int p;p=*pl;*p1=*p2;*p2=p;} main( ) { int a=5,b=7,*ptrl,*ptr2; ptrl=&a;ptr2=&b; swap(ptrl,ptr2); 页脚内容 页眉内容 printf(″*ptrl=%d,*ptr2=%d\n″,*ptrl,*ptr2); printf(″a=%d,b=%d\n″,a,b); } 五、编程题(本大题共2小题,每小题12分,共24分) 36.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。 37.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。 全国2010年7月自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号页脚内容 页眉内容 内。错选、多选或未选均无分。 1.与十进制数49等值的二进制数是( ) A. B. C. D. 2.编译程序的功能是( ) A.修改并建立源程序 B.将源程序翻译成目标程序 C.调试程序 D.命令计算机运行可执行程序 3.Turbo C 2.0中,若定义long b;则变量b在内存中分配的字节数是(A.1个 B.2个 C.4个 D.8个 4.下列语句中不能实现循环结构的语句是( ) A.if语句 B.while语句 C.do—while语句 D.for语句 5.以下程序的输出结果是( ) main() { int y=10; while(y——); printf(\"y=%d”,y); } A.y=-1 B.y=0 C.y=1 D.y=随机值 6.下列程序的输出结果是( ) main() { int a[10]={l,2,3,4,5,6,7,8,9,10}; printf(″%d\n″,a[2]); } A.1 B.2 C.3 D.4 7.下面程序的输出结果是( ) 页脚内容 ) 页眉内容 #include { char p1[10]= ″abc″,p2[]=″ABC″; strcat(p1,p2); printf(″%s\n″,p1); } A.abcabc B.abc C.ABC D.abcABC 8.设有int x=2,y,z;执行z=y=x++;后变量x的值是( ) A.0 B.1 C.2 D.3 9.下面程序段的输出结果是( ) main() { int a=2,b=5; printf(″a=%%%d,b=%%9%d″,a,b);} A.a=2,b=5 B.a=2%,b=5% C.a=%2,b=%5 D.a=%d,b=%d 10.若有下列程序段,欲使a=2,b=3,对应正确的数据输入法是(其中 scanf(″%d,%d″,&a,&b); A.2 C.a=2b=3 11.若运行时给变量x输入12,则以下程序的运行结果是( ) main() { int x,y; scanf(″%d″,&x); y=x>12?x+10:x-12; 页脚内容 B.a=2,b=3 页眉内容 printf(″%d\n″,y); } A.0 B.10 C.12 D.22 12.若执行下列程序时,从键盘上输入3和4,则输出结果是( ) main() { int a,b,s; scanf(″%d%d″,&a,&b); s=a: if(aprintf(″%d\n″,s); } A.9 B.16 C.18 D.20 13.C语言的auto型变量存储在( ) A.动态存储区中 B.静态存储区中 C.计算机CPU的寄存器中 D.外存储器中 14.以下程序的输出结果是( ) ff() { int a=l,c=8; static int b=4; if(b= =4) {a+=c;b++;} else (a+=c;b--;) printf(″a=%d,b=%d\n″,a,b); } main() {ff();ff();} 页脚内容 页眉内容 A.a=9,b=5 B.a=9,b=4 a=9,b=5 a=9,b=4 C.a=9,b=4 D.a=9,b=5 a=9,b=5 a=9,b=4 15.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量,则以下不能正确执行的赋值语句是( ) A.c=*p1+*p2; B.p2=*p1; C.p1=p2; D.c=*p1*(*p2); 16.以下选项中,对指针变量p的正确操作是( ) A.int a[5],*p;p=&a; B.int a[5],*p;p=a; C.int a[5];int *p=a[5]; D.int a[5];int*p,p2=a;*p=*p2; 17.设有下面的结构体和结构变量定义: struct student { long id: char*name; int math; }; struct student studl; 关于结构体类型变量赋值正确的是( ) A.studl.id=1001;studl.name=″Tom″; B.id=1001;*studl. name=″Tom″; C.studl.id=1001;studl.*name=″Tom″; D.studl.id=1001L;*studl.name=″Tom″; 18.设有说明:int x=7,y=1;表达式:x&~y的值是( ) A.0 B.2 C.4 D.6 19.设有说明:int u=1,v=14;表达式:u|v>>2的值是( ) A.-1 B.1 页脚内容 页眉内容 C.3 D.4 20.设有说明:FILE*fp;char filename[10]= ″myfile″;对于fp=fopen(filename, ″rb+″);语句,下面说法正确的是( ) A.打开名为myfile的文件读写 B.打开名为filename的文件读写 C.打开名为myfile的文件只读 D.打开名为filename的文件只读 二、多项选择题 (本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下列属于计算机的输入设备的有( ) A.CD—ROM C.键盘 D.鼠标 E.扫描仪 22.设有int a=3,b=-5;下面表达式值等于0的有( ) A.!a B.!b&&b D.a%3!=0 B.打印机 C.5/6 !=0 E.b+a ==-2 23.下列有关函数的说法中不正确的有( ) A.C语言程序总是从首定义的函数起顺序执行 B.在C语言程序中,被调用的函数必须在main()函数中定义 C.C语言程序中的main()函数必须放在程序开始部分 D.C语言程序总是从main()函数开始执行 E.定义函数时,参数表中可以没有任何参数 24.若有定义int a[5],i,*p=a;且0≤i<5,则对a数组元素的正确引用有( ) A.a[i] B.*(a+i) C.*(p+i) D.*(&a+i) E.p+i 25.设有说明:int x=0,y=1,z=2;则下列表达式中结果非0的有( ) A.~x&y B.x&y&z C.z>>2 D.(y<<1)&z E.y&z 页脚内容 页眉内容 三、简答题(本大题共4小题,每小题4分,共16分) 26.写出for语句的一般形式及执行过程。 27.函数fputc()的功能是什么? 28.将下面的各种运算符按优先级从高到低排列出来。(相同优先级的用“、”号分隔,不同优先级的按由高到低的顺序用“→”号分隔) ,、?:、>=、==、/、()、!、||、&&、= 29.若有char strl[20],str2[20];简述下面各函数调用的功能。 (1)gets(strl) (2)strcmp(strl,str2) 四、阅读分析题 (本大题共6小题,每小题5分,共30分) 30.写出下列程序的运行结果。 main() { int a=10,b=8,c; c=a; a=b; b=c; printf(″a=%d,b=%d\n″,a,b); } 31.写出下面程序的功能;如果输入6和9,写出程序的输出结果。 main() { int a,b,x,y; scanf(″%d%d″,&a,&b); x=a*a+b*b; if(x>100) {y=x/100;printf(″%d″,y);} else printf(″%d″,a+b); } 32.写出下面程序的功能及运行结果。 main() 页脚内容 页眉内容 { int n=1,sum=0; do{ sum=sum+n; n+=2; }while(n<100); printf(″sum=%d\n″,sum); } 33.写出下面程序的功能和运行结果。 int fun(int a[][4]) { int i,j,k,tem tem=a[0][0]; for(I=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j] 34.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果。 #include { char str1[]=″How do you do″; puts(str1); strcpy(str1+str1en(str1)/2,″es she″); printf(″%s\n″,str1); } 页脚内容 页眉内容 35.写出下列程序的功能和运行结果。 #include for(t=s+strlen(s)-1;s printf(″%s\n″,s1); } 五、编程题 (本大题共2小题,每小题12分,共24分) 36.编程求20至100之间素数的累加和并输出该累加和。 37.编程生成以下A、B两个数组(不得使用输入语句输入数据或对数组初始化),将两数组对应元素相加写入C数组中,最后并排输出A、B、C三个数组。 页脚内容 页眉内容 全国2011年4月高等教育自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.计算机处理信息时,CPU一般是以一组二进制数码为单位进行处理的,这组二进制数码称 为( ) A.word B.MB C.KB D.bit 2.下列不属于计算机硬件系统的是 ( ) A.操作系统 B.控制器 C.存储器 页脚内容 D.运算器 页眉内容 3.下面转义字符中,表示换页的是 ( ) A.\0 B.\n C.\r D.\f 4.在Turbo C 2.O中,保存源程序在主菜单File项中可选择( ) A.Load B.New C.Save D.Quit 5.下面表达式结果为3的是 ( ) A.(-7)%4 B.(-7.O)%4.0 C.7%(-4) D.7.O%4.O 6.设有int x=2,y,z;执行z=y=x++;后变量z的值是 ( ) A.0 B.1 C.2 D.3 7.下面不正确的关系表达式是 ( ) A.a=3 B.a<3 C.a>=b>c D.a>b>c 8.设有声明int x=1,y=2,z;执行z=x>y?x+2:y-2后变量z的值是 ( A.0 B.1 C.2 D.3 9.设有int b=-1;则执行printf(\"%u\n”,b);后的输出是 ( ) A.-1 B.ffff C. D.65535 10.下面程序段的输出结果是 ( ) main() { int a=3,b=5,c; c=a+b;a=b;b=c; printf(\"%d,%d\",a,b);} A.3,5 B.5,3 C.5,8 D.8,13 11.设有声明int x=-1;执行if(x<0)x=-x-1;后变量x的值是 ( ) A.-1 B.0 页脚内容 ) 页眉内容 C.1 D.2 12.关于break语句,以下说法不正确的是 ( ) A.它可以用于循环语句中 B.它可以用于switch语句中 C.可以从最内层循环结构中直接跳出最外层循环结构 D.可以从当前switch结构中跳出 13.下面能正确将字符串\"Boy\"进行完整赋值操作的语句是( ) A.char s[3]={′B′,′o′,′y′}; C.char s[3]={\"Boy\; D.char s[3]; s[O]=′B′;s[1]=′o′;s[2]=′y′; 14.下列函数中向文件一次读一串字符的函数是 ( ) A.fgetc B.fgets C.fputc D.fputs 15.在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 ( ) A.extern B.register C.auto D.static 16.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 ( ) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定方式 B.char s[]=\"Boy\"; 17.设有声明语句int a[2][3],(*p)[3]=a;则对a数组元素正确引用的是 ( ) A.(p+1)[O] C.*(p[1]+1) B.*(*(p+2)+1) D.p[1]+2 18.设有下面的结构体和结构变量定义: ( ) struct car { long id: char*name; }; struct car carl; 页脚内容 页眉内容 关于结构体类型变量赋值不正确的是 A.carl.id=10101; B.carl.name=\"BlueSky\"; C.carl.* name=\"BlueSky\"; D.carl.id=L; 19.设有声明和语句: ( ) unsigned int x=1,y=2; x<<=y+1; 则x的值是 A.1 B.4 C.5 D.8 20.设有下面程序: ( ) #include\"stdio.h\" void main(void) { unsigned x=1,y=3,z=5; printf(\"%d\n\", x y); } 该程序的运行结果是 A.1 B.3 C.5 D.7 二、多项选择题 (本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,号内。错选、多选、少选或未选均无分。 21.与十进制10.625等值的数有 ( ) A.(10.101)2 B.(1010.101)2 C.(12.101)8 D.(12.5)8 E.(A.A)16 22.下面合法的C语言用户定义的标识符有 ( ) A.auto B._123 C.ABC D.Turbo_c E.int 页脚内容 请将其代码填写在题后的括 页眉内容 23.下面属于Turbo C 提供的数学函数有 ( ) A.acos B.tan C.puts D. sqrt E.exp 24.自定义函数有n1,n2,n3三个形式参数且为整型,函数正确的定义形式有( ) A.int fun(int nl,n2,n3) {…} B.int fun(int nl,int n2,int n3){…} C.int fun(nl,n2,n3) int nl,n2,n3;{…} D.int fun(n1,n2,n3) {int nl,n2,n3;…} E.int fun(nl,n2,n3) {int n1,int n2,int n3;…} 25.设有关于结构体类型的定义:( struct mankind { char name[20]; int age; float weight: }person,*p; 下面各个供选项中语句都正确的有 A.person.name=\"Li\"; person.age=15; B.strcpy(person.name,\"Wang\"); Person->age=15; C.p=&person; p->age=25; D.strcpy(person.name,\"Tom\"); p=&person; E.strcpy(person.name,\"Tom\"),p=&person;页脚内容 ) 页眉内容 p->weight=97.2; 三、简答题 (本大题共4小题,每小题4分,共16分) 26.设有下面程序: void main(void) { int x: x=1: while(x<20){ printf(\"x=%d\n\",x); x+=2: } } 请把程序改写为for结构。 27.声明语句char s[20]=\"computer\"; 能用下面的语句替代吗?为什么? char s[20]; s=\"computer\"; 28.设有说明: struct node{ int num; char name[12]; char sex; float income; }a,*ptr=&a; 写出对ptr所指成员num,name,sex,income分别赋值123,\"zhang\",′m′,654.25的赋值语句。 29.设有说明:unsigned x=10;试写出通过仅对x进行移位操作的表达式,使表达式的值为 16。 四、阅读分析题 (本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 void main(void) 页脚内容 页眉内容 { int x=1,y=2; char ch=′a′: x++;y-=2;++ch; printf(\"%c,%d,%d\n\",ch,x,y); } 31.阅读下列程序并写出运行结果。 void main(void) { int x=11; switch(x-1){ case O: printf(\"x=%d\n\",x++); break: case 10: printf(\"x=%d\n\",x*2); case 20: printf(\"x=%d\n\",x*4); default: printf(\"x=%d\n\",x); } } 32.阅读下列程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。 void main(void) { int x,i,s=O; for(i=O;i<5;i++){ scanf(\"%d\",&x); if(x%2)continue; printf(\"%d\t\",x); 页脚内容 页眉内容 s+=x; } printf(\"\n\"); printf(\"s=%d\n\",s); } 33.阅读下列程序并写出运行结果。 void main(void) { int x=3,y[7]={1,3,5,8,9,11,12}; int t=O,b=7,f=O,m; m=(b+t)/2; while(b-t>=O) if(y[m]==x){f=1; printf(\"\ny[%d]=%d\n\",m,y[m]); break; } else if(y[m]>x) { b=m-1;printf(\"%d\t\",y[m]); m=(b+t)/2;} else{ t=m+1;printf(\"%d\t\",y[m]); m=(b+t)/2;} if(! f) printf(\"\n not find!\n\"); 34.阅读下列程序序并写出运行结果。 int fun(int y); void main(void) { int x[4]={3,5,7,O},s=0,i=0; 页脚内容 页眉内容 while(x[i]){ s+=fun(x[i]); i++; printf(\"s=%d\n\",s); } } int fun(int y) { static int a=O; a=a+y; return a; } 35.阅读下列程序并写出运行结果。 void f1(char*t,char*s); void main(void) { char s1[20]=\"abcdl2345\",t1[20]=\"xyz\"; printf(\"%s\n%s\n\",s1,t1); f1(t1,s1); printf(\"%s\n\",t1); } void f1(char*t,char*s) { while((*t=*s)!=′\0′){ t++; s++; } } 五、编程题 (本大题共2小题,每小题12分,共24分) 36.从键盘输入20个整数存放到数组a 中,计算数组a中下标为奇数的所有元素的和。 页脚内容 页眉内容 37.从键盘上输入20个字符存放到一个字符数组s中。对数组s中的元素按升序(由小到大)排序,再将排序后的结果写到c:\abc.dat文本文件中。 2011年7月高等教育自学考试计算机基础与程序设计试题 课程代码:02275 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列存储设备中,属于主机范畴的是( ) A.光盘 B.硬盘 C.内存 D.U盘 2.下列属于计算机软件系统的是( ) A.内存储器 B.操作系统 C.显示器 D.CPU 3.在Turbo C2.0中,在主菜单File项中选择Os Shell后,要重新回到Turbo C2.0,应使用的命令是( ) A.Return B.Exit C.Quit D.New 4.下面合法的C语言标识符是( ) A.int_ B.int C.π D.file.c 页脚内容 页眉内容 5.若有int a,b;下面正确使用变量a,b的表达式是( ) A.7.0%3.0 B.(a+b)++ C.7++ D.a+′a′+b 6.下面几种运算符中,优先级最低的是( ) A.| | B., C.= D.?: 7.设有int a=3,b=-4,c=5;表达式(a>b)?a&&c<0:b的值是( A.0 B.1 C.3 D.-4 8.设有int x=2,y,z;执行z=y=x++;后变量y的值是( ) A.0 B.1 C.2 D.3 9.若有int a=8,b=5;语句printf(“%d”,a>b);的执行结果是( A.0 B.1 C.5 D.8 10.下面程序的输出结果是( ) main( ) {int a=3,b=5; a+=b;b+=a; printf(“%d,%d”,a,b);} A.3,5 B.5,3 C.8,13 D.13,21 11.若有int a=8,b=12,max,min;执行语句 if(a>b){max=a;min=b;} else{max=b;min=a;} 的结果是( ) A.max的值是8,min的值是12 B.max的值是8,min的值是8 C.max的值是12,min的值是8 D.max的值是12,min的值是12 12.执行下面程序段后,a的值是 int a=100; 页脚内容 ) ) 页眉内容 do {a++;}while(a>120);( ) A.100 B.101 C.120 D.121 13.若有定义int ch[5][4];则数组ch中的元素的个数是( ) A.9 B.12 C.15 D.20 14.若有定义char str[20];能使数组str得到字符串\"I am a boy\"的正确输入方法是( ) A.gets(str); B.str=getchar( ); C.scanf(\"%c\",str); D.scanf(\"%s\",str); 15.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为( ) A.直接递归调用 B.间接递归调用 C.并行调用 D.嵌套调用 16.下面关于函数参数的说法中,不正确的是( ) A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式 C.实参可以是数组元素或数组名 D.形参应与其对应的实参类型一致 17.若有定义int b[2][3] ={0},(*p)[3]=b;对b数组第i行第j列(设i,j已正确说明并赋 值)元素的不正确的引用是( ) A.*(*(p+i)+j) B.*(p[i]+j) C.*(p+i)+j D.(*(p+i))[j] 18.设有下面的结构体和结构变量定义: Struct tea { char*name; float price,weight; }; struct tea teal={\"green_tea\",2.0,28.5}; struct tea *p_struct=&teal; 页脚内容 页眉内容 语句: printf(\"%s,%.1f \",p_struct—>name,p_struct—>price*p_struct—>weight); 的输出结果是( ) A.57.0 B.57.0,green_tea C.green_tea,57.0 D.green_tea 19.若有定义int x=5,y=6;下面表达式值为0的是( ) A.x^x B.x&y C.x|y D.y>>2 20.下列函数中向文件一次读一个字符的函数是( ) A.fgetc B.fputc C.fgets D.fputs 二、多项选择题(本大题共5小题,每小题2分,共10分) 在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.与十进制100等值的数有( ) A.()2 B.()2 C.(144)8 D.(64)16 E.(5F)16 22.下面合法的C语言常量有( ) A.′tc′ B.3e2.5 C.0xfde D.1e8 E.′\\n′ 23.下面属于C语言中输入或输出函数的有( ) A.scanf B.printf C.putchar D.main E.pow 24.下面关于函数的说法中,不正确的有( ) A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值类型不一致,以函数值类型为准 页脚内容 页眉内容 D.如果形参与实参的类型不一致,以实参类型为准 E.形参与实参的对应关系由形参名和实参名决定 25.设有关于结构体类型的定义: struct database { char name[20]; float speed; }dbl={\"Oracle\",.56},db2,*p=&db2; 下面选项中语句正确的有( ) A.p=&dbl; B.p=dbl; C.strcpy(p—>name,\"Sybase\"); D.p—>speed=dbl.speed; E.strcpy(p—>name,dbl.name) 三、简答题(本大题共4小题,每小题4分,共16分) 26.下面是求1到100之和的程序 main( ) { int i,sum=0; for(i=1;i<=100;i++) sum+=i; printf(\"%d\\n\} 问如何修改循环体,使其仅求前10个数之和。 27.若有下面定义: int num[10]={0,1,2,3,4,5,6,7,8,9),*p=num; 设数组num的首地址是65484。 问:(1)表达式p+8表示什么?其值是多少? (2)表达式*(p+8)表示什么?其值是多少? 28.设有说明:unsigned x=0x1234;下面表达式(1)、(2)的运算结果的十六进制值是什么? (1)(x&0xff00)>>8|(x&0xff)<<8 (2)x&0xff00>>8|x&0xff<<8 29.设有说明: 页脚内容 页眉内容 struct island {int id;char name[10]; float area;}a,*p=&a;写出对p所指的成员id、area分别赋值101、34521.65,使p所指的指针成员name指向\"Wang\"的C语句分别是: 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 main( ) { int a=55,x,y; x=(int)(a/8.0); y=a-8*x; printf(\"%d,%d\n\",x,y); } 31.阅读下列程序并写出运行结果。 main( ) { float x;int a=0; scanf(\"%f \",&x); switch(x/10-5) { case 7: a++; case 6:a++;printf(\"%d,\",a); case 5:a++;break; case 4:a++; default:a++;printf(\"%d,\",a); case 1:a+=2: } printf(\"%d\n\",a); } (1)当程序运行后输入115.5后,写出程序的执行结果。 (2)当再次运行程序后输入45后,写出程序的执行结果。 32.阅读下列程序并写出运行结果。 main( ) { int s=0,k=1,i; 页脚内容 页眉内容 for(i=0;i<10;i++) { k=k+i; s+=k; if(i>3) break; s+=2*k: printf(\"s=%d\n\",s); } printf(\"s=%d\n\",s); } 33.阅读下列程序并写出运行结果。 main( ) { int a[4][4],i,j; for( i=1;i<=3;i++) for( j=1;j<=3;j++) a[i][j]=i+j; for(i=1;i<4;i++){ for(j=1;j<=i;j++) printf(\"%3d\",a[i][j]); printf(\"\n\"); } } 34.阅读下列程序并写出运行结果。 int sum1; main( ) { int sum2=0,i,f1(int),f2(int); for(i=1;i<=5;i++) sum1+=f1(i); for(i=1;i<=5;i++) sum2+=f2(i); printf(\"sum1=%d\n\",sum1); 页脚内容 页眉内容 printf(\"sum2=%d\n\"sum2); } int f1(int a) { static int s1=1; s1*=a; return s1; } int f2(int a) { auto int s2=1; s2*=a; return s2; } 35.阅读下列程序并写出运行结果。 main( ) { char s[]=\"abcdel2345\",*q=s; int a=0; for(;q int f(char*p) { int x=0; while(*p++!=′\\0′) x++; return x; } 五、编程题(本大题共2小题,每小题12分,共24分) 36.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。 37.从二进制文件c:\\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数页脚内容 页眉内容 据按从小到大的次序输出在屏幕上。 2007 04 2007 07 2008 04 2009 04 2009 07 2010 04 有答案 2010 07 2011 04 有答案 2011 07 页脚内容 因篇幅问题不能全部显示,请点此查看更多更全内容printf(\"\na=%d\n\",a); }