while(i<10)
{ if(i<1) contimue; if(i==5) break; i++;
} }
A.1 B.10 C.6 D.死循环,不能确定次数 17、 对于下面①,②两个循环语句,( )是正确的描述。
①while(1) ;
②for( ; ; ) ;
A.①②都是无限循环 B.①是无限循环,②错误 C.①循环一次,②错误 D.①②皆错误
二、填空题
1、 结构化程序设计规定的三种基本结构是 结构, 结构和 结构。
2、 若有定义语句” int a = 25, b = 14, c = 19 ;”,下面程序段被执行的结果是 。
if ( a ++ <= 25 && b -- <= 2 && c ++ )
printf ( “ *** a = %d , b = %d , c = %d \\n” , a , b , c ) ; else
printf ( “ ### a = %d , b = %d , c = %d \\n” , a , b , c ) ;
3、 以下两条if语句可合并成一条if语句为 。
if ( a <= b ) x = 1 ; else y = 2 ;
if ( a > b ) printf( “ **** y = %d \\n ” , y ) ; else printf( “ #### x = %d \\n ” , x ) ;
4、 设i , j , k均为型变量,则执行如下语句后,k的值为 。
for ( i = 0 , j = 10 ; i <= j ; i ++ , j -- ) k = i + j ;
5、 下列程序的功能是输入一个正整数,判断是否为素数,若为素数输出1,否则输出0,填空完成程序。
main ( ) {
int i , x , y ;
scanf ( “%d” , &x ) ;
for ( i = 2 ; i <= x/2 ; i ++ )
if ( ) { y = 0 ; break ; } 16
printf ( “%d\\n” , y ) ; }
三、程序分析题
1、 阅读程序,写出运行结果
main ( ) {
int x = 100 , a = 10 , b = 20 , ok1 = 5 , ok2 = 0 ; if ( a < b ) if ( b != 15 ) if ( ! ok1 ) x = 1 ; else if ( ok2 ) x = 10 ;
else x = -1 ; printf( “ %d\\n ” , x ) ; }
2、 阅读程序,写出运行结果
main ( ) {
int y = 9 ;
for ( ; y > 0 ; y -- )
if ( y%3 == 0 ) { printf( “%d” , -- y ) ; cintinue ; }
}
四、程序设计题
1、 编程序,输入一个整数,输出其符号(若≥0,输出1;若≤0,输出-1)。 2、 编程序,输入三个数,输出其中最小值。
3、 输入一个正整数,是否既是5又是7的整倍数,若是,则输出Yes;否则输出No。
4、 某市出租车3公里的起租价为6元,3公里以外,按1.5元/公里计费。现编写程序,要求:输入行车里程数,输出应付车费。 5、 有一分段函数:
?x............(?5?x?0)?y??x?1......(x?0)
?x?1......(0?x?10)?编写程序,要求输入x的值后,输出y的值。 6、 编程序,输入10个整数,统计并输出其中正数、负数和零的个数。 7、 打印输出以下图案。
17
(1(1)*
** *** **** *****
(2) * * * * * * * * * * * * *
(3) 1 1 2 3 1 2 3 4 5 1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9
8、 有两个红球、三个黄球、四个白球,任意取四个球,其中必须有一个红球,编程输出所有可能的方案。
9、 编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。
18
第5章 数组
一、选择题:
1、 若有以下说明,则数值为4的表达式是( )
int a[12] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; char c = ? a ? , d , g ;
A.a[ g – c ] B.a[4] C.a[ ?d? - ?c? ] D.a[ ?d? – c ]
2、 设有定义:char s[12] = {“string”}; 则printf(“%d\\n”, strlen(s));的输出是( )
A.6 B.7 C.11 D.12 3、 若有以下数组定义:
int a[10]={1,2,3,4,5,6,7,8,9,10};
则关于语句printf(“%d “,a[10]); 正确的说法是( )。 A.正确执行并输出10 B.能够执行但输出0
C.语法错误,不能执行 D.虽然能够执行,但输出结果不确定 4、 下列语句中,正确的是( )
A.char a[3][ ] = {?abc?, ?1?} ; B. char a[ ][3] = {“abc”, “1”} ; ; C.char a[3][ ] = {?a?, “1”} ; D.char a[3][ ] = {“a”, “1”} ; 5、 合法的数组定义是( )
A.int a[ ] = {“string”} ; B.int a[5] = {0,1,2,3,4,5} ; C.char a = {“string”} ; D.char a[ ] = {0,1,2,3,4,5} ; 6、 语句”printf (“%d\\n”, strlen(“ats\\no12\\1\\\\”));”的输出结果是( ) A.11 B.10 C.9 D.8 7、 函数调用”strcat(strcpy(str1,str2), str3)”的功能是( ) A.将字符串str1复制到str2中后再连接到str3之后 B.将字符串str1连接到str2之后再复制到str3之后
C.将字符串str2复制到str1中后再将字符串str3连接到str1之后 D.将字符串str2连接到str1之后再将字符串str1复制到str3中 8、 设有如下定义,则正确的叙述为( )
char x[ ] = {“abcdefg”};
char y[ ] = {?a?,?b?,?c?,?d?,?e?,?f?,?g?};
A.数组x和数组y等价 B.数组x的长度大于数组y的长度 C.数组x和数组y长度相同 D.数组x的长度大于数组y的长度 9、 关于数组定义,以下说法不正确的是( )。 A.定义数组时,可以只为其中的部分元素赋值;
19
B.多维数组在定义时只能省略第一维的长度; C.多维数组在定义时不能省略的是第一维的长度; D.局部数组在定义时也可以赋初值; 10、 以下程序输出的结果是( )。
void main() {
int i,k,a[10],p[3]; k=5;
for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+= p[i]*2; printf(“%d\\n”,k); }
A.20 B.21 C.22 D.23
11、 数组名作为参数传递给函数,作为实在参数的数组名被子处理为( )。 A.该数组的长度 B.该数组元素个数 C.该数组各元素的值 D.该数组的首地址
二、填空题
1、 设有定义语句” int a[3][4] = { {1}, {2}, {3} };”, 则a[1][1]的值为( ),a[2][1]的值为( )
2、 若在程序中用到putchar( )函数时,应在程序开头写上包含命令(),若在程序中用到strlen( )函数时,应在程序开头写上包含命令()。
3、 下面程序的功能是输出a数组中最大元素的下标,请填空。
main() {
int k, p ;
int a[ ] = {1, -9, 7, 2, -10, 3} ; for ( p = 0 , k = p; p < 6; p ++)
if (a[p] > a[k]) printf(“%d\\n”, k); } 20