高级语言程序设计A:期末练习2及答案 联系客服

发布时间 : 星期一 文章高级语言程序设计A:期末练习2及答案更新完毕开始阅读70ecc6b66f1aff00bfd51e6e

一、单项选择题

1.下列字符串不是C语言标识符的是 D 。

A._above B.all C.long_int D.2Line

2.C语言中,下列不能用来表示整型常数的进制是 D 。 A.十进制 B.八进制 C.十六进制 D.二进制

3.以下选项中,非法的字符常量是 C 。

A.?\\t? B.?a? C.“n ” , D.?\\xaa?

4.设有语句int a=3; 则执行了语句 a += a - = a*a ; 后,变量 a 的值是 B 。 A.3 B. -12 C.9 D.0

5.若变量c为char 类型,能正确判断出 c 为小写字母的表达式是 B 。 A.?a? <= c <=?z? B.(c>=?a?) && (c<=?z? ) C.(c>=?a?) !! (c<=?z? ) D.(c>=?a?) and (c<=?z? )

6.设有定义:int x=10, y=3, z ;

则语句 printf ( “ %d ” , z= ( x%y, x/y ) ); 的输出结果是 A 。 A.3 B.0 C.4 D.1

7.以下选项中,与 k = n++ 完全等价的表达式是 A 。

A.k=n, n=n+1 B.n=n+1, k=n C.k= ++n D.k += n+1

8.下面的do_while ( ) 循环 C 。 int m= -1; do

{ m=m*m; } while ( !m ) ;

A.共执行2次 B.是无限循环 C.共执行1次 D.有语法错误

9.下面语句定义正确的是 D 。

A.int a[1][4]={1,2,3,4,5} ; B.float x[ ][ ]={{1},{2},{3}} ; C.long b[2][3]={{1}, {1,2},{1,2,3} } ; D.double y[][3]= {0,1,2,3 } ;

10.对表达式 for ( e1 ; ; e3 ) 可理解为 B 。 A.for ( e1 ; 0 ; e3 ) B.for ( e1 ; 1 ; e3 ) C.for ( e1 ; e3 ; e3 ) D.for ( e1 ; e1 ; e3 )

二、按照各小题的要求写出结果 填空输出结果

1.设有以下程序段,运行结果是 4 int a[10]= {1,2,3,4,5,6,7,8,9,10 } ;

int *p= &a[3], b ; b= *p ;

printf ( “ %d ”, b ) ;

2.下面程序的运行结果是 t=3, s= 2 void main ()

{ int a=7, b=4, s=1, t=1;

if (a>0) s++; if (a>b)

t +=s;

else if (a = = b) t=5; else t=2*s ;

printf( “t= %d, s=%d ”, t, s );

} 3..运行时输入12,下面程序执行时的输出结果是 0 。 void main( ) { int x, y;

scanf ( “ %d ” , &x) ; y=x>12 ? x+10 : x-12 ; printf (“ %d \\n ” , y ) ; }

4.下面程序的运行结果是 20101 LiuXiang 88 99 void main( ) { struct STU { int num; char name[10]; int score[2]; }; STU s1[2]={ {20101,\; printf(\ ); }

5.下面程序的运行结果是 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

@ @ @ @ @ void main( ) { int i, j;

for (i=1;i<=4 ;i++) { for(j=0; j<=4; j++) printf(\ putchar('\\n'); } }

三、读程序,写出输出结果和程序功能 1. #include

void main()

{ int a=0,b=0,c=0; char ch []=\ char *p=ch ; while ( *p != '#' )

{ if ( *p >= 'A' && *p <='Z') a++; if ( *p >= 'a' && *p <='z') b++; if ( *p >= '0' && *p <='9') c++; p++; }

printf ( \ M M \ ); }

程序功能: 搜索字符数组,直到#号结束,分别统计出大写字母、小写字母及数字符的个数。 运行结果: 3 3 3

2. #include

void main() { int i, j, m;

int a[3][4]={{1,2,3,4},{9,8,7,6}, {-10,10,-5,2}}; m= a[0][0];

for(i=0;i<=2;i++)

for(j=0;j<=3;j++) if ( a[i][j]>m ) m= a[i][j]; printf ( \ ); }

程序功能: 首先在3*4的矩阵中选择一个比较用的初值,求出3*4矩阵中值最大的那个元

素值,结束二重循环后,输出最大值。

运行结果: m=10

3.#include void main() { int i, n , a[10]; i=200; n=0;

while (i<=500)

{ if ( i % 100==0 ) { a[n]= i ; n++ ; } i++ ; }

for ( i=0; i

程序功能: 在200~ 500间,寻找是100倍数的数,并依次存入a数组中,最后输出之。 运行结果: 200 300 400 500

4.运行程序时,输入为 3 7 5 4 2 1 9 6 8 10 #include void main()

{ void sort (int array[], int n); int a[10], i;

for(i=0; i<10; i++)

scanf (\ sort ( a , 10 ); for(i=0; i<10; i++)

printf (\ printf(\ }

void sort (int array[], int n) { int i, j, k, t ;

for(i=0; i

for( j=i+1; j

if ( array[j]

t=array[k]; array[k]=array[i]; array[i]= t ; } }

程序功能: 输入一维数组10个元素值,调用sort()函数,用选择法排序,并输出。 运行结果: 1 2 3 4 5 6 7 8 9 10

四、根据题意填写空白处的程序语句

1.在main( )中输入并求出5x5的二维数组主对角线元素中最小值、并输出,请填空。 void main( )

{ int min, i, j , a[5][5] ; for (i=0; i<5; i++) for (j=0; j<5 ; j++)

scanf ( \ &a[i][j] ); min = a[0][0]; for (i=0;i<5;i++) for (j=0;j<5;j++) if ( i == j ) if ( a[i][j] < min ) min= a[i][j];

printf(\ min ); }

2.下面程序的功能:函数swap() 形参是一个二元素的整型数组,在函数体中,交换这二个元素值;main( )调用swap() ,实现实参数组二元素的交换,请填空。 void swap (int c[2] ) { int t;

t=c[0]; c[0]=c[1]; c[1]= t; }

void main( )

{ int a[2]={3,5 }; swap ( a ); printf (\ a[1]=%d \}

3.下面 convert( ) 函数的功能,将一个字符串内容颠倒过来。例:“ABCD”变成“DCBA”。main( )调用 convert( ) ,并输出颠倒后的字符串,请填空。 #include “string.h”

void convert ( char str [ ] ) ; void main()

{ char s[ ]= {“ABCD…\\0”}; char *p convert ( s ) ;

p= s ; while ( *p != ?\\0? )

{ putchar ( *p ) ; p++;