02600C语言程序设计基础自考历年真题试题试卷电子版及复习资料:https://www.ddwk123.cn/archives/69299
2007年1月高等教育自学考试全国统一命题考试
C语言程序设计 试卷
(课程代码2600)
一、填空题(本大题共10空,每空1分,共10分)请在每小题的空格中填上正确答案。错填、不填均无分。
1.结构化程序设计所规定的三种基本控制结构分别是 结构、选择结构和循环结构。
2.有符号的整型数据(signed int)能表示的最大整数是 。
3.设a为int变量,b为float变量,则a+b的运算结果为 型数据。
4.设a为int变量,执行a=1/2+1/2;语句后,a的值为 。
5.以下程序运行后的输出结果是 。
main( )
{int a=010,b=2,c;
c=a+b;
printf(“%d”,c);
}
6.以下程序运行后的输出结果是 。
main( )
{char m;
m=‘B’+32;printf(“%c”,m);
}
7.以下程序运行后的输出结果是 。
main( )
{int a=1,b=3,c=5;
if(c=a+b)
printf(“yes”);
else
printf(“not”);
}
8.以下程序段的输出结果是 。
char s[]= “\\140\140abc\t”;
prntf(“%d\n”,strlen(s));
9.以下程序段的输出结果是 。
int a=l,b=2,*p=&a,*q=&b;
p=q;*p=3;
printf(“%d”,b);
10.以下程序段的输出结果是 。
struct node
{int a;
float b;
char c[10];}
printf(“%d”,sizeof(struet node)) ;
二、单项选择题(本大题共25小题.第11—30题每小题1分,第31-35题每小题2分,共30分) 在每小题列出的四个备选项中有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。
11.下列标识符中可用作C语言用户标识符的一组是 【 】
A.void B.a3_b3 C.For D.2a
define _123 -abc DO
WORD IF Case sizeof
12.在C语言中,合法的字符常量是 【 】
A.‘\084’ B.‘\x43’ C.‘ab’ D.“\O”
13.表示关系X≤Y≤Z的c语言表达式是 【 】
A.(x<=Y)&&(Y<:z) B.(x<=Y)AND(Y<=z)
C.(x<=Y<=z) D.(x<=Y)&(Y<=z)
14.若t为double类型,表达式t=l,t+5,l++的值是 【 】
A.1 B.1.0 C.2.0 D.4
15.在C语言中,运算对象必须是整型数的运算符是 【 】
A.% B./ C.%和/ D.}+
16.在C语言中,如果下面的变量都是int类型,则输出的结果是 【 】
Sum=pad=5;pAd=sum++,pAd++,++pAd:
printf(“%d\n”,pad);
A.7 B.6 C.5 D.4
17.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 【 】
#include<stdio.h>
main( )
{ char c1=’A’,c2=’Y’;
printf(“%d,%d\n”,c1,c2);}
A.因输出格式不合法,输出错误信息
B.65,90
C.A,Y
D.65,89
18.设有说明int(*ptr)[m];其中的标识符ptr是 【 】
A.m个指向整型变量的指针
B.指向m个整型变量的函数指针
C.一个指向具有m个整型元素的一维数组的指针
D.具有m个指针元素的一维指针数组,每个元素都只能指向整型量
19.语句while(!E);中的条件!E等价于 【 】
A.E==0 B.E!=1 C.E!=O D.E=l
20.以下函数调用语句中含有的实参个数为 【 】
func((exp1,exp2),(exp3,exp4,exp5));
A.1 B.2 C.4 D.5
21.设有以下语句:
char a=3,b=6,C;
c=B^b<<2;
则c的二进制值是 【 】
A.00011011 B.00010100
C.00011100 D.00011000
22.设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是 【 】
A.-12 B.0 C.3 D.9
23.在C语言中,下列描述正确的是 【 】
A.不能使用do—while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环
24.以下程序的输出结果是 【 】
#include<stdio.h>
#include<string.h>
main()
{char str[12]={‘8’,‘t’,‘r’,‘i’, ‘n’,‘g’,‘、0’,‘a’};
printf(“%d\n”,strlen(str));}
A.6 B.7 C.8 D.12
25.以下程序的输出结果是 【 】
#include<stdio.h>
main()
{int a=2,c=5;
printf(“a=%%d,b=%%d\n”,a,c);}
A.a=%2,b=%5 B.a=2,b=5
C.a=%%d,b=%%d D.a=%d,b=%d
26.以下程序的输出结果是 【 】
#include<stdio.h>
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d\n”,a,b);}
A.6,l B.6,0 C.2,1 D.2,0
27.C语言中形参的缺省存储类别是 【 】
A.自动(auto) B.静态(static)
C.寄存器(register) D.外部(extern)
28.设有以下语句(其中0≤i<10),则不能对a数组元素的正确引用是 【 】
int a[10]={0,l,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a] B.*(&a[i])
C.p[i] D.*(*(a+i))
29.以下程序的输出结果是 l【 】
#include<stdio.h>
union pw
{int i;char ch[2];}a;
main( )
{a.ch[0]=13;a.ch[1]=0;printf(”%d\n”,a.i);}
(注意:ch[0]在低字节,ch[1]在高字节。)
A.13 B.14 C.208 D.209
30.设有以下语句:
char str1[]= “string”,str2[8],*str3,*str4= “ string”;
则不能对库函数strcpy(复制字符串)的正确调用的是 【 】
A.strepy(str1,“HELLO1”);
B.strepy(str2,“HELL02”);
C.strcpy(str3, “HELL03”)
D.strcpy(str4, “HELLO4”);
31.以下程序的输出结果是 【 】
#include<stdio.h>
main()
{inti:
for(i=l;i<=5;i++)
{if(i%2)
printf(“*”);
else
continue;
printf(“*”);}
printf(“$\n”);I
A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$
32.以下for语句构成的循环执行的次数是 【 】
#include<stdio.h>
#define N 2
#define M N+l
#define NUM(M+1)*M/2
main()
{int i,n=0;
for(i=1;i<=NUM;i++)
{n++;printf(“%d”,n);}
printf(“\n”);}
A.5 B.6 C.8 D.9
33.有以下程序:
#include<stdio.h>
#define N 6
main( )
{char c[N];int i=0;
for(;i<N;c[i]=getchar(),i++);
for(i=O;i<N;putchar(c[i]),i++);}
输入以下三行,每行输入都是在第一列上开始,<CR>代表一个回车符:
a<CR>
b<CR>
edef<CR>
程序的输出结果是 【 】
A.abedef B.a C.a D. a
b b b
c cd edef
d
e
f
34.假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输人命令行:
prg hello good<回车>
则程序的输出结果是 【 】
A.hello good B.hg C.hel D.hellogood
main(int argc,char *argv[])
{int i;
if(arge<=0)return;
for(i=1;j<argc;i++)printf(“%c”,*argv[i]);
}
35.下列关于C语言数据文件的叙述中正确的是 【 】
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
三、程序题(本大题共6小题,每小题5分,共30分)请在每小题的程序之后写出正确的运行结果。错写、不写均无分。
36.有以下程序:
#include<stdio.h>
main( )
{int C;
While((c=gerchar())!= ‘\n’
{case 0:
case l:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+2);break;
}
printf(“\n”);}
从第一列开始输入以下数据,<CR>代表一个回车符。
2743<CR>
程序的输出结果是
37.有以下程序:
#include<stdio.h>
f(inc a)
{int b=0:
static c=3:
a++,c++.b++:
return(a+b+c);}
main()
{int a=2,i,k=O;
for(i=0;i(2;j++)
k+=f(a++):
printf(“%d\n”,k);}
执行后输出的结果是
38.有以下程序
#include<stdio.h>
struct stu
{int num;
char name[10];
int age;
};
void fun(struct stu *p)
{printf(“%s\n”,(*p).name);}
main( )
{struct stu students[3]={{9801,“Zhang”,20},
{9802,“Wang”,19l},
{9803,“Zhao”,18}};
fun(students+2);
}
执行后输出的结果是
39.有以下程序
void f(int *x,int *y)
{int t;
t=*x;*x=*y;*y=t;
}
main()
{int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p<q)
if(p,q);
p++;
q–;}
for(i=0;i<8;i++)
printf(“%d,”,a[i]);
}
程序运行后的输出结果是
40.有以下程序
main()
{int a=1,b;
for(b=1;b<=10;b++)
{if(a>=8)break;
if(a%2==1)
{a+=5;continue;}
a-=3;
}
printf(“%d\n”,b);
}
程序运行后的输出结果是
41.有以下程序
#include “stdio.h”
void WriteStr(char *fn,char *str)
{FILE *fp;
fp=fopen(fn,“W”).
fputs(str,fp);
fclose(fp);
}
main() 。
{WriteStr(“t1.dat”, “start”);
WriteStr(“t1.dat”, “end”);
}
程序运行后,文件t1,dat中的内容是
四、程序题(本大题共3小题,每小题10分,共30分)根据题意。编写程序。
42.编写一函数prime实现判断一个正整数是否为素数。要求在主函数main中输入一个正整数,并输出是否素数的信息。
例如:若输入11,则输出YES;若输入10,则输出NO。
43.编写一函数sort实现对数组中下标为奇数的元素升序排序。要求在主函数main中输人10个数据,并输出排序后的数据。
例如:下标0 l 2 3 4 5 6 7 8 9
输人12 8 18 2 13 I 2 20 6 4
输出12 l 18 2 13 4 2 8 6 20
44.编写一函数length求字符串的长度,要求在主函数mare中输入字符串,并输出字符串的长度。不能使用strlen库函数。
例如:输入string,则输出6。
请先
!