当前位置:首页 > 历年二级C语言笔试真题及答案 - 图文
二级C语言笔试试题
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c+4,6);
for (i=0;i<10;i++) printf(\printf(\程序运行的结果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4, C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0, (35)有以下程序 #include
int fun(char s[]) {int n=0;
while(*s<=’9’&&*s>=’0’) {n=10*n+*s-’0’;s++;} return(n);} main()
{char s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’}; printf(\程序运行的结果是 A)9 B)61490 C)61 D)5
36)当用户要求输入的字符串中含有空格时,应使用的输入函数是 A)scanf() B)getchar() C)gets() D)getc() (37)以下关于字符串的叙述中正确的是
A)C语言中有字符串类型的常量和变量 B)两个字符串中的字符个数相同时才能进行字符串大小的比较 C)可以用关系运算符对字符串的大小进行比较 D)空串一定比空格打头的字符串小 (38)有以下程序: #include
void fun(char *t,char *s) {while(*t!=0)t++;
while((*t++=*s++)!=0);} main()
{ char ss[10]=”acc”,aa[10]=”bbxxyy”; fun(ss,aa);
printf(“%s,%s\\n”,ss,aa);}程序运行结果是
A) accxyy , bbxxyy B) acc, bbxxyy C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy (39)有以下程序 #include #include
void fun(char s[][10],int n) {char t;int i,j; for(i=0;i for(j=i+1,j {char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc””aabcc”} fun(ss,5); printf(“%s,%s\\n”,ss[0],ss[4]);} 程序运行结果是 A) xy,aaaacc B) aaaacc,xy C) xcc,aabcc D) acc,xabcc (40) 在一个C语言源程序文件中所定义的全局变量,其作用域为: A) 所在文件的全部范围 B) 所在程序的全部范围 C) 所在函数的全部范围 D) 由具体定义位置和extern 说明来决定范围 (41)有以下程序 #include int a=1; int f(int c) {static int a=2; c=c+1; return (a++)+c;} main() { int i,k=0; for(i=0;i<2;i++){int a=3;k+=f(a);} k+=a; printf(“%d\\n”,k);} 程序运行结果是 A) 14 B) 15 C) 16 D) 17 25 二级C语言笔试试题 (42)有以下程序 #include void fun(int n,int *p) { int f1,f2; if(n==1||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2;}} main() { int s; fun(3,&s); printf(\程序的运行结果是 A)2 B)3 C)4 D)5 (43)若程序中有宏定义行:#define N 100 则以下叙述中正确的是 A)宏定义行中定义了标识符N的值为整数100 B)在编译程序对C源程序进行预处理时用100替换标识符N C) 对C源程序进行编译时用100替换标识 D)在运行时用100替换标识符N (44)以下关于typedef的叙述错误的是 A)用typedef可以增加新类型 B)typedef只是将已存在的类型用一个新的名字来代表C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D)用typedef为类型说明一个新名,通常可以增加程序的可读性 (45)有以下程序 #include struct tt {int x;struct tt *y;} *p; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a}; main() { int i; p=a; for(i=1;i<=2;i++) {printf(\p=p->y;}} 程序的运行结果是 A)20,30, B)30,17 C)15,30, D)20,15, (46)有以下程序 #include #include typedef struct{ char name[9];char sex; float score[2]; } STU; STU f(STU a) { STU b={\strcpy(a.name,b.name); a. sex=b.sex; for(i=0;i<2;i++) a.score=b.score; return a;} main() {STU c={\ d=f(c); printf(\程序的运行结果是 A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92 (47)设有以下定义 union data { int d1; float d2; }demo;则下面叙述中错误的是 A)变量demo与成员d2所占的内存字节数相同 B)变量demo中各成员的地址相同 C)变量demo和各成员的地址相同 D)若给demo.d1赋99后, demo.d2中的值是99.0 (48)有以下程序 #include main() { int a=1,b=2,c=3,x; x=(a^b)&c; printf(\程序的运行结果是 A)0 B)1 C)2 D)3 (49)读取二进制文件的函数调用形式为:fread(buffer,size,count,fp); ,其中buffer代表的是 A)一个文件指针,指向待读取的文件 B)一个整型变量,代表待读取的数据的字节数 C)一个内存块的首地址,代表读入数据存放的地址 D)一个内存块的字节数 (50)有以下程序 #include main() {FILE *fp; int a[10]={1,2,3,0,0},i; 26 二级C语言笔试试题 fp=fopen(\fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(\fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i<10;i++) printf(\程序的运行结果是 A)1,2,3,0,0,0,0,0,0,0, B)1,2,3,1,2,3,0,0,0,0, C)123,0,0,0,0,123,0,0,0,0, D)1,2,3,0,0,1,2,3,0,0, 二、填空题(每空2分,共40分) (1) 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的_[1]_______. (2) 在两种基本测试方法中, _[2]_______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次. (3) 线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的_[3]_______存储结构. (4) 对下列二叉树进行中序遍历的结果为_[4]_______ F / \\ C E / \\ \\ A D G / / \\ B H P (5) 在E-R图中距形表示_[5]_______ (6) 执行以下程序时输入1234567,则输出结果是_[6]_______. #include main() { int a=1,b; scanf(\ (7) 以下程序的功能是:输出a、b、c三个变量中的最小值.请填空。 #include main() { int a,b,c,t1,t2; scanf(\t1=a t2=c printf(\ (8) 以下程序的输出结果是_[9]_______. #include main() { int n=12345,d; while(n!=0){ d=n; printf(\(9) 有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(\ 请填空,使下面程序段的功能为完全相同 s=1.0;k=1; while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;} printf(\ (10) 以下程序的输出结果是_[12]_______. #include main() { int i; for(i='a';i<'f';i++,i++) printf(\printf(\ (11) 以下程序的输出结果是_[13]_______. #include 27 二级C语言笔试试题 #include char *fun(char *t) { char *p=t; return(p+strlen(t)/2);} main() { char *str=\str=fun(str); puts(str);} (12)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空. #include viod f(int x[],int n) { int p0,p1,i,j,t,m; i=j=x[0]; p0=p1=0; for(m=0;m { if(x[m]>i) {i=x[m]; p0=m;} else if(x[m]} t=x[p0]; x[p0]=x[n-1]; x[n-1]=t; t=x[p1];x[p1]= _[14]_______; _[15]_______=t;} main() { int a[10],u; for(u=0;u<10;u++) scanf(\f(a,10); for(u=0;u<10;u++) printf(\printf(\ (13)以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空. #include #include main() { int num[26]={0},i; char c; while((_[16]_______)!='#') if(isupper(c)) num[c-‘A’]+= _[17]_______; for(i=0;i<26;i++) Printf(\ (14)执行以下程序的输出结果是_[18]_______. #include main() { int i,n[4]={1}; for(i=1;i<=3;i++) { n=n[i-1]*2+1; printf(\(15) 以下程序的输出结果是_[19]_______. #include #define M 5 #define N M+M main() { int k; k=N*N*5; printf(\ (16)函数main()的功能是:在带头结点的单链表中查找数据域中值最小的结点.请填空 #include struct node { int data; struct node *next;}; int min(struct node *first)/*指针first为链表头指针*/ { strct node *p; int m; p=first->next; m=p->data;p=p->next; for(;p!=NULL;p=_[20]_______) 28
共分享92篇相关文档