{
int i,s=0; for(i=0;i<10;i++) if(*(b+i)%2) s++; return s; }
main()
{ int x,a[]={15,24,1,3,4,9,16,25,23,11},*p=a; x=f(p);
printf(\ }
A.3 B.7 C.10 D.5
31.下面程序运行后,其输出是__ ____。 #include
{ printf(\
else if(n<=1) f=1; else f=n*func(n-1); return(f); }
main()
{ int n=5,y;
printf(\ }
A.24 B.1 C.60 D.120
31.下面程序运行后,其输出是__ ____。 #include
while(p[i]!='\\0')
{ if(p[i]>='A'&&p[i]<='Z') { p[i]=p[i]-'A'+'a'; i++; } else i++; } }
void main()
{ char str[20]=\ fun(str);
printf(\ }
6
A. abcdefg123 B. ABCDEFG123 C. abcdEFG123 D. abcd123efg
第二卷
说明:(1)第二卷均为填空题,在阅读和理解源程序的基础上,在第二卷答题卡上编号对应的
栏目中填入适当的字符、语句、以构成一个正确的C语言程序。 (2)每空栏3分,十个空共30分。
试题一:以下程序的功能是:计算s=1+1/2!+1/3!+······+1/n!。 #include
{ int n=20; double s= ,fac=1.0;int i; 0
for(i=1;i<=n;i++)
{ fac= ; fac*i s=s+ ;} 1/fac printf(“%f\\n”,s); }
试题二:以下程序的功能是,从键盘输入20个学生的成绩,统计计算出平均成绩,并输入低于平均分的学生成绩。
#include
{ float score[N],sum=0.0,ave,a; int n=0,i; printf(“Enter mark:\\n”);
for(i=0;i<=N;i++){ 原题有错,应为i<= N-1 scanf(“%f”,&a);
sum+= ; a score[i]= ; a }
ave= ; sum/N printf(“ave=%f\\n”, ave);
for(i=0;i<=N;i++){ 原题有错,应为i<= N-1
if( ) printf(“%4.2f\\n”,score[i]); score[i]
试题三:下面的程序的功能是:在字符串str中查找第一次出现字符变量ch值得位置,如找到则返回该位置的下标,若未找到返回-1.例:字符串为Hello Everyone!,若ch值为e,则返回1;若ch值为a,则返回-1.
#include
int fun(char *p,char ch) { int i=0;
while(p[i]!= ) ?\\0? { if (p[i]!=ch) ; i++
else return i;
7
}
if( ) return -1; p[i]= =?\\0? }
main( )
{ char str[20] = ”Hello Everyone!”; int x; char ch=?e?; x=fun(str,ch); printf(“%d\\n”,x); }
全国高校计算机联合考试(广西考区)二级C试题卷
2012年7月1日 闭卷考试 考试时间:120分钟
第一卷
本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 第一部分:基础知识
1、 下面各选项,不是C语言关键字的是( ) A. unsigned B. if C. until D. while 2、以下常数不是C语言的合法常量的是() A. 0x5A B. “A” C. ?A? D. 3.0E2.5 3、若变量定义int i=1, a=2;,则表达式4.5+i/a的值是() A. 4 B. 4.500000 C. 5 D. 5.000000
4、若变量a为int类型,且其值为4,则执行完表达式a+=a*=4,a的值是() A. 4 B. 8 C. 16 D. 32 5、若变量定义int x ,y ;char c ;float z ;,则表达式x/y+c*z的结果类型为() A. double B. int C. char D. float 6、若变量定义int a=1 ,b= 0 ,c= 0;,则表达式a&&||!c的结果为() A. 0 B. 1 C. true D. false
7、表示关系式-1≤x≤1的正确C语言表达式是()
A. -1<= x <=1 B. -1≤x≤1 C. x>=-1 && x<=1 D. x>=-1 and x<=1 8、若有说明语句int a ,*p=&a;则能正确从键盘读入整数赋给变量a的语句是() A. scanf(”%d”,& a,); B. scanf(“%d“ , & p); C. scanf(”%d” , a); D. scanf(“%d” , *p); 9、若变量定义int a ,x=9,y=10;,则执行完a(x= = y)?- - x :++y后,a的值是() A. 8 B. 9 C. 10 D. 11 10、执行语句for(i=1 ;i<4 ;i++);后,变量i的值是() A. 3 B. 4 C. 5 D. 6 11、变量定义char str[10];,以下不能为字符数组输入数据的是()
A. scanf(%s,str); B. gets(str); C. scanf(%s, &str[0]); D. scanf(%s ,&str); 12、变量定义int a[3][4];,则对数组元素的正确应用为() A. a[3][4] B. a[1,2] C. a[0][0] D. a(2)(3)
8
13、当调用函数时,实参是一组数组名,则向函数传送的是()
A. 数组的长度 B. 数组的首地址 C. 数组的每一个元素的地址 D. 数组每个元素的值 14、定义int a[5]={1,2,3, 4,5},*p=a ; ,则以下值不为3的是() A. a[3] B. p[2] C. *(p+2) D. a[2]
15、变量定义int s[5]={10,20,30,40,50},*p=&s[1] ; ,则*++p的值是() A. 20 B. 21 C. 30 D. 31
16、一下不能正确进行字符串赋初值的语句是() A. char str[5]=”hell0”; B. char str[]=”hell0”;
C. char *str=”hellp”; D. char str[5]={?h?,?e?,?l? ,?l?,?\\0?};
17、若有以下定义和语句: int a[4][5], (*pa)[5] ;pa= a ;则对a数组元素的正确引用形式是( ) A. pa+1 B. *(pa+3) C. pa[0][2] D. *(pa+1)+3 18、若有如下定义,则对data中的成员a 引用正确的是 ( ) strue { int a ;
float b;
}data,*p ;p=&data ;
A. p.a B. p--> data.a C. *p.a D. (*p).a 19、若有如下定义: typedef struct ST
{ int g ; char h ; } T ; 则下面说法正确的是()
A. ST是结构体变量名 B. 可以用T定义结构体变量 C. T是struct ST 类型的变量 D. T 是struct类型的变量
20、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是( ) A. EOF B. -1 C. 非零值 D. NULL
第二部分:简单程序
21、以下程序的运行结果为() # include
{ int m=5, n= 6 , x ; x=(m - =m -2 ,n=m,n+2);
printf(“%d \\n” , x); }
A. 2 B. 3 C. 4 D. 5 22、以下程序的输出结果是() # include
{ int a=4 ,b=3,c=5,d=8; if(a
if(b printf(“%d, %d \\n”, c ,d ); } 9 A. 5,8 B. 6 , 8 C. 5,9 D. 6 , 9 23、运行以下程序,其输出是() # include { int i , sum=0; for (i=1; i<=10 ; i++) if(i%3= = 0) continue ; else sum++; printf(“%d \\n”, sum); } A. 10 B. 9 C. 8 D. 7 24、以下程序运行后,输出结果是() # include { int i ,count =0; for( i=0; i<4; i++) { switch(i) { case 1: count++; case 2:count ++;break ; case 3:count ++; default:count ++; } } printf(“%d”, count); } A. 4 B. 5 C. 6 D. 7 25、下列程序的输出结果是:() #include { int a[5]={1,2,3,4,5},sum=0, i ; for(i=0;i<5;i++) { if(i%2= = 0) sum=sum+a[i]; } printf(“-”,sum); } A. 5 B. 9 C. 6 D. 15 26、下面程序运行后,其输出是:() #include { int a[3][3]={1,2,3,4,5,6,7,8,9}, i ,s=0; for (i=0 ;i<3 ;i++) s=s+a[i][1]; printf(“%d\\n”, s); } 10