„„„„„„ „ „ „ „ „ „ „ „ „ 线 „ „ „号„学„ „ „ „ „ „ „ 订 „ „ „名„姓„ „ „ „ „ „ „ 装 „ „ „级„班„„„„„„„„„„„一、 单选题(共20分,每小题1分) 9.以下对二维数组进行正确初始化的是( )。 A. int a[2][3]={{1,2},{3,4},{5,6}}; 1. ________是合法的用户自定义标识符。 B. int a[][3]={1,2,3,4,5,6}; A)b-b B)float C)
D)_isw C. int a[2][]={1,2,3,4,5,6}; 2. C程序是由 构成的。 D. int a[2][]={{1,2},{3,4}}; A. 主程序与子程序 10.二维数组a有m列,则在a[i][j]之前的元素个数为: 。 B. 主函数与若干子函数 A)j*m+i B)i*m+j C)i*m+j-1 D) i*m+j+1 C. 一个主函数与一个其它函数 11.C语言中基本数据类型包括( )。 D. 主函数与子函数 A. 整型、实型、逻辑型 3. 以下说法中正确的是: 。 B. 整型、实型、字符型 A. 在C语言中,实参与其对应的形参各占的存储单元; C. 整型、字符型、逻辑型 B. 在C语言中,实参与其对应的形参共占同一个存储单元; D. 整型、实型、逻辑型、实型 C. 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元; 12.已知 int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是( )。 D. 在C语言中,形参是虚拟的,不占存储单元。 A. 6 B. 12 C. 30 D. 36 4.设n=3;则n++的结果是( )。 13.C语言中规定函数的返回值的类型是由( )。 A. 2 B. 3 C. 4 D. 5 A. return语句中的表达式类型所决定 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。 B. 调用该函数时的主调用函数类型所决定 A. 0 B. 1 C. 2 D. 3 C. 调用该函数时系统临时决定 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是( )。 D. 在定义该函数时所指定的函数类型所决定 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register) 14.不能进行++和--运算的数据类型是( )。 7.在while(x)语句中的x与下面条件表达式等价的是: 。 A. 指针 B. double C. int D. long A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: 15.为了判断两个字符串s1和s2是否相等,应当使用( )。 struct worker A. if(s1==s2) B. if(s1=s2) { int no; C. if(strcpy(s1,s2)) D if (strcmp(s1,s2)) char *name; 16.若有以下说明和语句: }work, *p=&work; struct stu 则以下引用方法不正确的是( )。 {int no; A. work.no B. (*p).no C. p->no D. work->no char *name; }student, *p=&student; 则以下引用方法不正确的是( )。 A. student.no B. (*p).no C. p->no D. student->no 17.以下不是死循环的语句为( )。 A. for(; ; x+=k); B. while(1){x++}; C. for(k=10; ;k--)sum+=k; D. for(;(c=getchar())!=’\\n’;)printf(“%c”,c); 18.以下错误的描述是( )。 A. 不同的函数中可以使用相同的变量名 B. 形式参数是局部变量 本试卷共 5 页,此页为 B 卷第 1 页 (注:参加重修考试者请在重修标识框内打钩)„„„„„„ „ „ „ „ „ „ „ „ „ 线 „ „ „号„学„ „ „ „ „ „ „ 订 „ „ „名„姓„ „ „ „ „ „ „ 装 „ „ „级„班„„„„„„„„„„„C.一个函数内部定义的变量只能在本函数范围内有效 7.下面是把大写字母转换成小写字母的函数,请补充完整其中的return语句: D. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 19.若用数组名作为函数调用时实参,则实际上传递给形参的是( )。 char UPPER(char c) A.数组首地址 B. 数组的第一个元素值 { if( ) return c+32 ; C.数组中全部元素的值 D. 数组元素的个数 return ; 20.已知 int a,*p=&a; 则为了得到变量a的值,下列错误的表达式是()。 } A. *&p B.*p C. p[0] D.*&a 8.以下程序用来求两整数的绝对值和。请填空。 二、 填空题(共20分,其中1—4题每题1分,其余每题2分) #include void main() 1. 表示“x≥y≥z”的C表达式是 。 { int x,y; printf(\"Please input x,y:\"); 2. 下列程序段的输出是 。 cin>>x>>y; printf(\"%on\ if (x<0) ; 3 已知:int *p,a; 则语句 p=&a;中的运算符&的含义是 。 if ( ) y=-y; cout< } main() 10.以下程序运行后的输出结果是 。 { main() int m,i,k; { int a=1,b=3,c=5; scanf(“%d”,&m); k=sqrt(m); if (c=a+b) printf(\"yes\\n\"); for(i=2;i<=k;i++) else printf(\"no\\n\"); if(m%i==0) ; } if(i>=k+1) printf(“%d is a prime number\\n”,m); 11. 已知: struct else printf(“%d is not a prime number\\n”,m); { int k; } char c; float a;}test; 则sizeof(test)的值是 。 本试卷共 5 页,此页为 B 卷第 2 页 „„„„„„ „ „ „ „ „ „ „ „ „ 线 „ „ „号„学„ „ „ „ „ „ „ 订 „ „ „名„姓„ „ „ „ „ „ „ 装 „ „ „级„班„„„„„„„„„„„12 以下程序运行后的输出结果是 __ __ 。 3. 第3小题运行结果: #include < iostream.h > # include main() void main() { { int a,b,c,d; int array[15],j; a=c=0; array[0]=0; b=1; array[1]=1; d=20; for (j=2;j<15;j++) if(a) d=d-10; array[j]=array[j-1]+array[j-2]; else if(!b) cout << array[8] << \" \\n\"; if(!c) d=25; } else d=15; 三、请阅读以下程序,写出运行结果(共20分,每小题4分) cout<<“d=”< 第1小题运行结果: 4.运行以下程序,若输入:6 2<回车>时,写出程序的输出结果。 main() #include { int a=5,b=4,x,y; void fun(int *p1, int *p2) 第4小题运行结果: x=a++*a++*a++; { int t; cout<<“a=”<>x>>y; p1=&x; p2=&y; if(x>y) fun(p1,p2); 2. cout< 5. main() #include 第5小题运行结果: { int i=16,j,x=6; func(int x) j=i+++1; { x=20; } x*=i=j; main() cout<„„„„„„ „ „ „ „ „ „ „ „ „ 线 „ „ „号„学„ „ „ „ „ „ „ 订 „ „ „名„姓„ „ „ „ „ „ „ 装 „ „ „级„班„„„„„„„„„„„四、程序设计(每题10分,共40分) 2、输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。 1、有一个3 4的矩阵,找出最大值及该值所在位置。 本试卷共 5页,此页为 B 卷第 4 页 „„„„„„ „ „ „ „ „ „ „ „ „ 线 „ „ „号„学„ „ „ „ „ „ „ 订 „ „ „名„姓„ „ „ „ „ „ „ 装 „ „ „级„班„„„„„„„„„„„3、任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。 4、计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。 本试卷共 5页,此页为 B 卷第 5 页