A. 10 B. 12 C. 15 D. 18 27、以下程序运行后,输出结果是() #include
void fun (int *p , int *q) {
*p=*p+5; *q=*q+3; }
main()
{ int a=3, b=4;
fun(&b,&a);
printf(“%d, %d\\n”, a, b); }
A. 9,6 B. 3,4 C. 8,7 D. 6,9 28以下程序运行后,输出结果是() #include
{ int a=1,b=2,c=3,d=4;
printf(“%d\\n”, M(a+b, c+d)); }
A. 11 B. 9 C. 7 D. 21
29、运行下面程序后,其正确的输出是()#include
{ static int i=0; int s =2 ;
s*= i ; i++; return s ; }
main()
{ int i , a=1;
for(i=0; i<3; i++) a+=fun(); printf(“%d\\n”, a); }
A. 6 B. 7 C. 8 D. 9 30、下面程序运行后,其输出是( ) #include
for(i=m ; i 11 main() { int x ,a[]={1,2,3,4,5,6,7,8,9}; x=f(a , 2 ,5); printf(“%d \\n”, x); } A. 10 B. 7 C. 8 D. 11 31、下面程序运行后,其输出结果是() #include if(n= =0) return 1; else return (n+fun(n-1)); } main() { int n=5; printf(“%d \\n”,fun(n)); } A. 16 B. 15 C. 12 D. 14 32、下面程序运行后,其输出是() #include { char ch[20]=”ab561234cd”,s1[10],*p=s1; int i ; for(i=0 ; ch[i]!=?\\0?; i++) if(ch[i]>=?a?&& ch[i]<=?z?) *p++=ch[i]; *p=?\\0?; printf(“%s\\n”,s1); } A. ab B. 561234 C. cd D. abcd 第二部分:简单程序 试题一:以下程序的功能是:计算1-3+5-7+??-99+101的值。 # include { int i , sum=0 , s=1; for(i=1; i <=101: i+= ) 2 { sum = sum+i* ; s s*= ; -s } printf(“ %d \\n”, sum); } 试题二:以下程序的功能是:从终端读入整数到数组中,统计其中负数的个数,并计算它们的和。 12 # include { int i , sum=0 , count=0 , a[10]; for (i= 0; i<10; i ++) scanf(“%d” , ); &a[i] for (i= 0; i< 10 ; i++) if( ) a[i]<0 { count+= ; 1 sum+= ; a[i] } printf(“count=%d, sum=%d \\n”, count ,sum); } 试题三:下面的程序的功能是:将字符串s2的连接在字符串s1的后面。其中,函数fun是实现字符串的连接操作并返回字符串s1的首地址,在main函数中输入字符串s1,s2,并输出连接后的结果。 # include char * fun(char *s1 , char *s2) { char *p=s1; while(*p!=?\\0?) ; p++ while(*s2!=? \\0?) *p++= ; *s2++ *p= ; ?\\0? return s1 ; } main() { char s1[80], s2[20]; printf(“please input string1:”); gets(s1); printf(“please input string2:”); gets(s2); printf(“string1 +string1=%s\\n”, fun(s1 ,s2)); } 全国高校计算机联合考试(广西)二级C语言试题卷 2011年12月24日 第一卷 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 1.main()函数的特征是 。 A.可独立运行的函数 B.必不可少的函数 C.最先执行的函数 D.具有前述三种特征的函数 2. 下面标识符中,非法的C语言标识符是 。 13 A. _char B.Char C.a#b D.alb 3.下面常量中,非法的C语言常量是 。 A.‘tt’ B.10L C.0.01 D.0x10 4.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 。 A.-32768~32767 B.0~255 C.0~65535 D.-256~256 5.若w、x、y均为int型变量,则执行下列语句后,y的值是 。 w=5;x=w++;y=x+w--; A.9 B.11 C.10 D.12 6.若之前有以下说明语句,则表达式c*x+z+y的结果类型是 。(在TC2.0的环境中,结果为A,VC++环境中结果为D) char c; int x; float y, z; A.double B.int C.char D.float 7.若y为int型变量,则执行以下语句后,y的值是 。 y=8;y+=y-=y*y; A.64 B.-56 C.-112 D.-48 8.若m、a、b、c、d均为int型变量,则执行下列语句后的m值是 。 a=1;b=2;c=3;d=4; m=a>b?a:c A.1 B.4 C. 2 D.3 9.若a、b为int型变量,则执行下列语句后的b值是 。 a=15;b=15; do { b-=a; a++; }while(b--<0); A.0 B.-15 C.-16 D.-1 10.若有以下语句,则下面选项 是正确的描述。 static char x[ ]=“china”; static char y[ ]={?c?,?h?,?i?,?n?,?a?}; A.x数组与y数组长度相同 B.x数组长度大于y数组长度 C.x数组长度小于y数组长度 D.x数组和y数组的赋值是非法的 11.while(!x)中的条件表达式(!x)与下面条件 等价。 A.x==0 B.x==1 C.x==0||x==1 D.x!=0 12.若已定义m为int型变量,则 是对指针变量p的正确说明和初始化。 A.int p=&m; B.int *p=m; C.int *p=*m; D.int *p=&m; 13.若用数组名作为函数调用的实参,则实际上传送给行参的是 。 A.数组的全部元素值 B.数组的首地址 C.数组的第一个元素值 D.数组所含元素数目 14.若有以下语句,再执行语句j=!c&&i++;则变量i和j的值分别是 。 char c=? x?; int i =1, j; A.1,1 B.2,0 C.2,1 D.1,0 15.若之前有如下宏定义,则执行系列语句:z=4*(N+y(5));后的结果是 。 14 #define N 2 #define y(n) ((N+1)﹡n) A.z值为68 B.z值为180 C.z值为60 D.语句有错误 16.在C语言中函数返回值的类型缺省时,函数默认为 。 A.returu语句中的表达式类型 B.调用该函数的主函数类型 C.int类型 D.void类型 17.若有以下语句,则对数组元素正确引用的是 。 int a[ ]={2,4,6,8,10,12},*ptr;ptr=a; A.a B.a[6] C.*ptr D.ptr 18.有以下说明和p=&studl;语句,对结构变量中成员age的正确引用的是 。 struct student { int age; int sex; }stud1,*p; A.p->age B.student.age C.*p.age D.student.stud1.age 19.语句float *p();说明了 。 A.p是指向一维数组的指针变量 B.p是一函数名,该函数的返回值是指向float类型数据的指针 C.p是指向函数的指针,该函数返回值的类型是float D.p是指向float类型数据的指针变量 20.若要用fopen函数建一个新的二进制文件,该文件要即能读也能写,则文件方式字符串应该为 。 A.“ab+” B.“wb+” C.“rb+” D.“ab” 第二部分:简单程序 21.以下程序的输出结果是 。 main() { int n=4; while(n>0) {n--;printf(“%d”,n);} } A.2 0 B.3 2 1 C.3 2 1 0 D.2 1 0 22.下列程序运行后的输出结果是 。 main() { int i=1; while(i<=7) if(++i%3!=2) continue; else printf(“%d”,i); printf(“\\n”); } A.158 B.26 C.125 D.258 23.两次运行下面的程序,如果从键盘是分别输入6和4,则输出结果分别是 。 15