1、第二部分C与C+语言程序设计(共85分)一、单项选择题 ( 每小题1分,共10分 ) 1. 以下合法的字符常量是( C )。16 (A) “a” (B) 72 (C) 0x12 (D) ab 2. 以下程序的结果是( B )。#include stdio.hvoid main() unsigned int a=3,b=10; printf(%dn,a1); 17 (A) 1 (B) 13 (C) 12 (D) 5 3. 以下程序的输出结果是( D )。 int a=-1,b=4,k; k=(+a)&!(b-=0);%d %d %dn,k,a,b);18 (A)1 0 4 (B)1 0 3 (C
2、) 0 0 3 (D)0 0 4 4. 以下程序的输出结果是( C )。#include char p20=a,bcd,q=abc,r=abcde; strcpy(p+strlen(q),r); strcat(p,q);%d %dn,sizeof(p),strlen(p);19 (A) 20 9 (B) 9 9 (C)20 11 (D)11 11 5. 下列对C语言字符数组的描述中错误的是( C )。20 (A) 字符数组可以存放字符串 (B) 字符数组的字符串可以整体输入、输出 (C) 可以在程序中用赋值运算符“=”对字符数组进行整体赋值 (D) 不可以用关系运算符对字符数组中的字符串进行比
3、较 6.下述程序的输出结果是( D )。 int a=7,4,6,3,10; int m=10,k,*ptr=&a0; for(k=0;k5;k+) m=*(ptr+k)m?*(ptr+k):m;,m);21 (A) 10 (B) 4 (C) 6 (D) 3 7. 有如下程序 int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+; printf(,c);该程序的输出结果是( C )。22 (A) 0 (B) 1 (C) 2 (D) 3 8. 根据下面的结构体类型及其结构数组的定义,值等于A的表达式是( D )。 struct season char name
4、10; int day; ; struct season s4=“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92;23 (A) s3.name0 (B) s3.name(C) s2.name (D) s2.name0 9. 运行以下程序的输出结果为( B )。 #include #define R 1+2#define S(r) r*r#define V(r) S(r)*R int r1=1+2;%d,V(r1);24 (A) 27 (B) 11 (C)9 (D)7 10.以下不能对二维数组a进行正确初始化的语句是 ( A ) 。25 (A) in
5、t a 2 3 =1,2,3,4,5,6; (B) int a 3 =1,2,0;(C) int a 2 3 =0;(D) int a 3 =1,2,3,4,5,6;二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 读下面程序并回答问题: int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+; case 2: a+; %d,%dn,a,b);(1)程序的运行结果为( A )。26 (A) 2,1 (B) 1,2 (C) 1,1 (D) 0,0(2)将程序中的switch(x)更改为swit
6、ch(x!=1),其程序运行结果是( D )。27 (A) 2,1 (B) 1,2 (C) 1,1 (D) 0,0 2. 读下面程序并回答问题:string.hvoid abc(char *name,int len) char *temp; int i,j,k; for(i=0;ilen-1;i+) k=i; for(j=i+1;j0) k=j; if(i!=k) temp=namei;namei=namek;namek=temp; static char *name=turbo c,fortanbasicforbasejava; int i,n=5; abc(name,n);%c,*name
7、i);n); 函数abc的功能是( B )。28 (A) 按字符排序 (B) 按字符串排序(C) 交换字符串 (D) 字符串倒序程序的运行结果是( C )。29 (A) tfbfj (B) turbo (C) bffjt (D) java 3. 读下面程序并回答问题:int func(int x) int y=0; static int z=3; x=z+,y+; return x; int a=2,i,b;2; b=func(a+);,b);该程序运行的结果是( C )。30 (A)2 (B) 3 (C) 4 (D) 5 4. 有下列程序(考点:函数(地址参数)、指针运算)int temp;
8、 int fun(int n); int num,sum; num=5684; temp=num; sum=fun(num);=%dn,sum);int fun(int n) int remind; static int sum=0; if(n=10) fun(n/10); remind=n%10; sum+=remind; if(tempn)%d+,remind); else return sum;(1)程序中的fun函数被调用次数为( C )。31 (A)2 (B) 3 (C) 4 (D) 5(2)程序的输出结果为( A )。32 (A)5+6+8+4=23 (B) 5+6+8+4+=23
9、 (C)4+8+6+5+=23 (D) 4+8+6+5=23 5. 读下面程序并回答问题。char x48=FirstSecondThirdFourint a4=6,7,6,5; int i; char y48; FILE *fp; fp=fopen(TEST.txtw4; fputs(xi,fp); fclose(fp);r fgets(yi,ai,fp);%sn,*(y+i);(1)程序运行的结果是( A )33 (A) First (B) First (C) “First” (D) Four Second First “Second” Third Third First “Third”
10、Second Four First “Four” First(2)以下哪种说法是正确的( C )。34 (A) TEST.txt仅在程序运行期间存在,程序结束后就没有了 (B) TEST.txt文件必须在程序运行之前建立好 (C) 如果TEST.txt文件不存在,程序运行中会自动建立TEST.txt文件 (D) TEST.txt始终是无内容的空文件 6. 读下面程序并回答问题。 char s50=de123116abc5656 int i,b10=0,cnt=0;si!=0 if(si0siai) t=aj;aj=ai;ai=t; int x10=1,0,-76,4,8,12,65,100,-
11、45,123; sort(x+5,5);,x5);(1)程序中sort函数的功能是( C ) 39 (A)用起泡法对含有n个元素的数组a从小到大的排序 (B)用选择法对含有n个元素的数组a从小到大的排序(C)用二分法对含有n个元素的数组a从小到大的排序(D)用起泡法对含有n个元素的数组a从大到小的排序(2)该程序的运行输出结果为( B )40 (A) -76 (B) -45 (C) 8 (D) 123注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空 ( 每空2分,共30分 ) 1. 程序中函数fun()的功能是:查找字符串st
12、r中指定字符ch出现的次数并返回,并将该字符出现时的下标位置记录于数据组bb中。例如在字符串1233211234567中查找字符1,其结果为3次,下标分别为0,5,6。请填空。#define N 20int fun(char *str,char ch,int *bb) int i=0,n=0; while(*str) if( stri=ch ) bb n+ =i; str+; i+; return n ; char strN,ch; int bbN=0,i,n;nInput the original string: gets(str);nInput character: scanf(,&ch)
13、; n=fun(str,ch,bb);nThe number of character is:,n);nThe suffix of character:,bbi);2. 已知head指向单链表的第一个结点,以下程序调用函数print输出这一单链表。malloc.h#define Len sizeof(struct student)struct student int data; struct student *next;struct student *creat() . return(head);print(struct student *head) struct student *p;nTh
14、e linklist is: p=head; if(head=!NULL) while(p-next !=NULL), p-data ); p= p-next ;,p-data); struct student *head; head= creat() ; print(head);3.下列程序的功能是:假设a数组中的数,按由小到大的顺序存放。将数组a中相邻相同的数删得只剩一下,然后以每行5个数的形式输出a数组中的数。#define MAX 20 int aMAX,i,j,n;MAX; scanf(, a+i ); n=i=MAX-1; while( i ) if(ai=ai-1) for(j=
15、i;=n; aj-1=aj; n=n-1; i=i-1; if(i%5=0) printf(“n”) ;%3d,ai);4. 函数fun的功能是:求S=12+23+34+n(n+1)的和,S的值作为函数值返回。在main函数中输入n的值,调用fun函数,并输出最后的结果。long fun(int n) long s=0 ; for(i=1; s=s+ i*(i+1) ; return s ; int n; long s;Input n:n); s=fun(n);s=%ldn5.函数fun的功能是:将10到99之间的每位数字的乘积大于每位数字的和的整数放入形参数组a中,数组a的个数作为函数值返回。例如:整数23:2*32+3,所以23满足条件,应存入数组a中。在main函数中,调用fun函数,并按一行5个整数进行输出。int fun(int * a) int i=0,n,k,s,m; for(n=10;ns) ai=n; i+; return i; int a100,n,i; n=fun(a);%4d if( (i+1)%5=0 )printf(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1