《高级语言程序设计试题五》 单项选择题(每题1分,共20分) 字符串“ abcd tef 0g”的长度是() 下列描述中不正确的是 A、字符型数组中可以存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出 D、不能在赋值语句中通过赋值运算符“≡“对字符型数组进行整体赋值 3.设intx=1,y=1;表达式(xy-)的值是 A、0 C、2 D、-1 4.以下循环体的执行次数是 maino fo(i=0j=11;计+=2j-) printf(“%dm”,i) 5.以下程序的输出结果是 maino {intx=10y=10,i; for(F0; x>8: y=+ printf((9d%d”x-y); A、10192B、9876C、10990D、101091 6、已知: char strl[20=” abcde”,str220}=”xyz”;则执行语句: printf(“%", strlen( strcpy(strl,stn2))):输出结果是() B、3 7、已知inta[10]:则对a数组元素的正确引用是() A、a[l0j B、a[3.5] C、a(S)D、a[10-10 8.若已有定义 char str7要将键盘输入的字符串“ a pear“赋给st,应使用 A、gets(str);B、 scanf(“%s”str),C、str=” a pear”;D、 getchar(str); 9.若定义函数nt* funcl0,则 func1的函数返回值是 A、整数B、指向函数的指针C、整型数的地址D、以上说法均错 10. typedef int BIGGY;的作用是 A、建立了一个新的数据类型 B、定义了一个整型变量 C、定义了一个长整型变量 D、说明了一个新的数据类型标识符 11.C语言规定,函数的返回值类型是 A、由 return语句中的表达式类型决定的 B、由调用该函数时的主调函数类型决定的 C、由系统决定的 D、由该函数定义时的类型决定的 12、已知函数定义的形式如下: struct data* f(void 则函数f() A、没有参数,返回值是一个结构 B、有一个参数void,返回值是一个结构 C、没有参数,返回值是一个结构指针
《高级语言程序设计试题五》 一、单项选择题(每题 1 分,共 20 分) 1、字符串“abcd\tef\0g”的长度是( ) A、9 B、7 C、6 D、4 2.下列描述中不正确的是 A、字符型数组中可以存放字符串 B、可以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出 D、不能在赋值语句中通过赋值运算符“=“对字符型数组进行整体赋值 3.设int x=1,y=1;表达式(!x||y--)的值是 A、0 B、1 C、2 D、-1 4.以下循环体的执行次数是 A、3 B、2 C、1 D、0 main() { int i,j; for(i=0,j=1;i8;y=++i) printf(“%d %d”,x--,y); } A、 10 1 9 2 B、 9 8 7 6 C、10 9 9 0 D、10 10 9 1 6、已知:char str1[20]=”abcde”, str2[20]=”xyz”;则执行语句: printf ( “%d”, strlen ( strcpy ( str1, str2 ) ) );输出结果是( ) A、9 B、3 C、5 D、8 7、已知 int a[10];则对a数组元素的正确引用是( ) A、 a[10] B、a[3.5] C、a(5) D、a[10-10] 8.若已有定义char str[7];要将键盘输入的字符串 “a pear“赋给str,应使用 A、gets(str); B、 scanf(“%s”,str); C、str=”a pear”; D、getchar(str); 9.若定义函数 int *func1(),则func1的函数返回值是 A、整数 B、指向函数的指针 C、整型数的地址 D、以上说法均错 10.typedef int BIGGY;的作用是 A、建立了一个新的数据类型 B、定义了一个整型变量 C、定义了一个长整型变量 D、说明了一个新的数据类型标识符 11.C语言规定,函数的返回值类型是 A、由return语句中的表达式类型决定的 B、由调用该函数时的主调函数类型决定的 C、由系统决定的 D、由该函数定义时的类型决定的 12、已知函数定义的形式如下: struct data * f(void ) {…………} 则函数 f ( ) A、没有参数,返回值是一个结构 B、有一个参数 void, 返回值是一个结构 C、没有参数,返回值是一个结构指针
D、有一个参数void,返回值是一个结构指针 13、对于int*pa5;的描述,()是正确的 A、pa是一个指向数组的指针,所指向的数组是5个int型元素 B、pa是一个指向某数组中第5个元素的指针,该指针是nt型变量 C、pa[5]表示某个数组的第5个元素的值 D、pa是一个具有5个元素的指针数组,每一个元素是一个int型指针 14.在C语言中, switch语句后一对圆括号中表达式的类型 A、可以是任何类型 B、只能是int类型 C、可以是整型或字符型 D、只能是整型或实型 struct cha float a i test 则 sIzeof(tes t)的值是( A、4 B、5 C、6 D、7 16、在高级语言中对文件操作的一般步骤是() A、打开文件一操作文件一关闭文件 B、操作文件一修改文件一关闭文件 C、读写文件一打开文件一关闭文件 D、读文件一写文件一关闭文件 17.有如下程序段 int*p, a=10, b-1 执行该程序段后,a的值是 A、12 B、11 D、编译出错 18.执行以下程序段后,s的值是 nta={5,3,7,2,1,5,4,10} int s=o.k: for(k=0k<8k+=2)s+=*(a+k) B、27 D、无定值 19.以下程序中有语法错误,有关错误原因的正确说法是 maino i int G=5, k void par char(int x, int y) k=par char(G) A、语句 void par charO,有错,不能用void说明函数的类型 B、变量名G不能使用大写字母 C、函数说明和函数调用语句之间有矛盾 D、函数名不能使用下划线 20.若有以下函数调用语句 fun(a+b, (x, y), fun(n+k, d, (a, b))) 则在此函数调用语句中实参的个数是 A、3 B、4 D、6
D、有一个参数 void, 返回值是一个结构指针 13、对于int *pa[5];的描述,( )是正确的 A、pa是一个指向数组的指针,所指向的数组是5个int 型元素 B、pa是一个指向某数组中第5个元素的指针,该指针是int 型变量 C、pa[5]表示某个数组的第5个元素的值 D、pa是一个具有5个元素的指针数组,每一个元素是一个int 型指针 14.在C语言中,switch语句后一对圆括号中表达式的类型 A、可以是任何类型 B、只能是int类型 C、可以是整型或字符型 D、只能是整型或实型 15、已知:struct { int i; char c; float a; } test; 则 sizeof(test)的值是( ) A、4 B、5 C、6 D、7 16、在高级语言中对文件操作的一般步骤是( ) A、打开文件—操作文件—关闭文件 B、操作文件—修改文件—关闭文件 C、读写文件—打开文件—关闭文件 D、读文件—写文件—关闭文件 17.有如下程序段 int *p,a=10,b=1; p=&a;a=*p+b; 执行该程序段后,a的值是 A、12 B、11 C、10 D、编译出错 18.执行以下程序段后,s的值是 int a[]={5,3,7,2,1,5,4,10}; int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k); A、17 B、27 C、13 D、无定值 19.以下程序中有语法错误,有关错误原因的正确说法是 main() { int G=5,k; void par_char(int x,int y); …… k=par_char(G); …… } A、 语句void par_char();有错,不能用void说明函数的类型 B、变量名G不能使用大写字母 C、函数说明和函数调用语句之间有矛盾 D、函数名不能使用下划线 20.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b))); 则在此函数调用语句中实参的个数是 A、3 B、4 C、5 D、6
二、多项选择题(下列各题中,有一个或多个正确答案,多选或少选均不得分。每题2分,共10分) 1.若有说明:long*p,a则能通过 scanf语句正确给输入项读入数据的程序段是 1)*p=&a; scanf(“%d”,p) 2)P=(long *)malloc(4); scanf( %ld,,p) 3)scanf("%ld,p=&a); 4) scanf(%ld”,&a); 5) scanf("%ld,p);a=°p 2.下列一维数组的初始化语句中,正确的是 1) float bl5={0,3.2,43}; 2) float b[S}={0,3,4.56,7,1.2} 3) char al3}={a’}; 4)inta={0}; 5 static int b[3]=(1,5) 3.以下叙述中错误的是 1)定义函数时,形参的类型说明只能放在函数定义的第一行参数表中 2) return语句后边不能用表达式 3)如果函数的类型与返回值类型不一致,以函数类型为准 4)如果函数的类型与返回值类型不一致,以返回值类型为准 5)如果形参与实参的类型不一致,以实参类型为准 4.若有以下说明 inta[12}={1,2,3,4,56,7,8,9,10,11,12} char c=a,dg 则数值为4的表达式是 1)a[gc]2)a[4]3)a3]4)a[d-c’] 5)a[ -] 5.设有如下定义:int(*ptr)();则以下叙述中不正确的是 1)ptr是指向一维数组的指针变量 2)ptr是指向int型数据的指针变量 3)ptr是指向函数的指针,该函数返回一个int型数据 4)ptr是一个函数名,该函数的返回值是指向int型数据的指针 5)ptr是一个指向二维数组的指针变量 、判断对错题(每题1分,共5分) 1、C语言程序总是从main)函数开始执行。 2、除法运算符邝要求运算对象必须是整数 3、设有说明nt(ptrM其中标识符ptr是具有M个指针元素的一维指针数组,每 个元素都只能指向整型变量。 4、C语言程序中,各函数之间既允许直接递归调用,也允许间接递归调用。 5、在一个C源程序文件中,若要定义一个只允许本源文件中的所有函数使用 的全局变量,则该变量需要使用的存储类别是外部( extern) 四、阅读下面的程序,写出程序的运行结果(每题3分,共15分) l、intf(intb[.intn) f int 1, r=1; for(i=0;i<=n;计++) r=r*bi return main( { int x, al={2,3,4,5,6,7,8,9}; x=f(a,3) printf("%od”,x);} 、manO {intx=1,y=0,a=0.b=0 i case 1: switch y) case 0: a++ break case 1: b++ break case 2. a++ b++ break
二、多项选择题(下列各题中,有一个或多个正确答案,多选或少选均不得分。每题 2 分,共 10 分) 1.若有说明:long *p,a;则能通过 scanf 语句正确给输入项读入数据的程序段是 1)*p=&a; scanf(“%ld”,p); 2) p=(long *)malloc(4); scanf(“%ld”,p); 3)scanf(“%ld”,p=&a); 4)scanf(“%ld”,&a); 5)scanf(“%ld”,p); a=*p; 2.下列一维数组的初始化语句中,正确的是 1)float b[5]={0,3.2,4.3}; 2) float b[5]={0,3,4.5,6,7,1.2}; 3) char a[3]={‘a’}; 4) int a[]={0}; 5} static int b[3]={1,5}; 3.以下叙述中错误的是 1)定义函数时,形参的类型说明只能放在函数定义的第一行参数表中 2)return 语句后边不能用表达式 3)如果函数的类型与返回值类型不一致,以函数类型为准 4)如果函数的类型与返回值类型不一致,以返回值类型为准 5)如果形参与实参的类型不一致,以实参类型为准 4.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g; 则数值为 4 的表达式是 1)a[g-c] 2)a[4] 3)a[3] 4)a[‘d’-‘c’] 5)a[‘d’-c] 5.设有如下定义:int (*ptr)( ); 则以下叙述中不正确的是 1)ptr 是指向一维数组的指针变量 2)ptr 是指向 int 型数据的指针变量 3)ptr 是指向函数的指针,该函数返回一个 int 型数据 4)ptr 是一个函数名,该函数的返回值是指向 int 型数据的指针 5)ptr 是一个指向二维数组的指针变量 三、判断对错题(每题 1 分,共 5 分) 1、C语言程序总是从main()函数开始执行。 2、除法运算符’/’要求运算对象必须是整数。 3、设有说明int (*ptr)[M],其中标识符ptr是具有M个指针元素的一维指针数组,每 个元素都只能指向整型变量。 4、C语言程序中,各函数之间既允许直接递归调用,也允许间接递归调用。 5、在一个C源程序文件中,若要定义一个只允许本源文件中的所有函数使用 的全局变量,则该变量需要使用的存储类别是外部(extern)。 四、阅读下面的程序,写出程序的运行结果(每题 3 分,共 15 分) 1、int f(int b[ ],int n) { int i, r=1; for(i=0; i<=n; i++) r=r*b[i]; return r; } main() { int x,a[ ]={2, 3, 4, 5, 6, 7, 8, 9}; x=f (a, 3); printf(“%d”,x ); } 2、main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch (y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break;
printf("a=%d, b=%d\n", a, b) 3. maino i int x=2 while(x--): printf(" %d”,x), {inta[B3][4]={1,3,5,7,9,113,15,17,19,21,23} int(p)4=a, ij, k=0 for(i=0;b ++b) while(a>++c) J++; k while(a>d++) 4.函数fun的功能是:使一个字符串按逆序存放。 void fun(char strDD) i char for(I=0, j=strlen(str); I<( i m=str[] strLj-l=m 5.函数fun的功能是根据下面的公式s=1-1/3+1/5-1/7+…1/(2n-1)计算s的值,通过形参指针sn传回s 的值:n通过形参传入,n的值大于等于0. void fun(float *sn, int n) float s=0.0,w,f=-1.0
} printf("a=%d,b=%d\n",a,b); } 3.main() { int x=2; while(x--); printf(“%d”,x); } 4. main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for(i=0;ib;++b) i++; while(a>++c) j++; do k++; while(a>d++); 4.函数 fun 的功能是:使一个字符串按逆序存放。 void fun(char str[]) { char m; int I,j; for(I=0,j=strlen(str);I<( );I++,j--) { m=str[I]; str[I]=( ); str[j-1]=m; } printf(“%s\n”,str); } 5.函数 fun 的功能是根据下面的公式 s=1-1/3+1/5-1/7+……1/(2n-1)计算 s 的值,通过形参指针 sn 传回 s 的值;n 通过形参传入,n 的值大于等于 0. void fun(float *sn,int n) { float s=0.0,w,f=-1.0;
int l=o for(I=0,l #include<std io h yoid fun(char*tt, int ppD main( i char aa [1000]: bb26], k, n printf ('\nPlease enter a char string ) scanf(%s", aa); fun(aa, bb) for(k=0; k<26; k++)printf(%d"(k]) printf("n”)
int I=0; for(I=0;I #include void fun (char*tt, int pp[]) { } main( ) { char aa [1000]; int bb[26],k,n; printf (‘\nPlease enter a char string :”); scanf (“%s”, aa); fun(aa , bb); for(k=0; k<26; k++)printf(“%d” bb[k]); printf(“\n”); }