2007 年(上)全国信息技术水平考试
计算机程序设计技术(C 语言)理论考试试卷
一、选择题(每小题1.5分,共60分)
1 .以下说法正确的是(  )
A ) main 函数必须放在C 程序的开头。
B ) main 函数必须放在C 程序的最后。
c ) main 函数可以放在C 程序的中间部分,在执行C 程序时则是从程序的开头执行。
D ) main 函数可以放在C 程序的中间部分,但在执行C 程序时则是从main 函数开始执行。
2 .一个C 程序可以包含任意多个不同名的函数,但有且仅有一个(  )
A )变量    B )主函数    C ) include    D )过程
3 .在算术表达式中允许使用的括号类型是(  )
A ) { }    B ) []    C ) ()    D )以上三项皆错
4 .对以下函数的说法正确的是(  )
int add ( int x ; int y )
{
z = x + y ;
return z ;
}
A )此函数能单独运行                B )此函数存在语法错误
C )此函数只能通过main 函数调用    D )此函数没有语法错误
5 .在C 语言中,正确的实型常数是(    )
A ) 2e    B ) 0. 9    C ) 3e2.1    D ) e5
6 .有如下程序段,不能表示为地址的是(  )
Int x = 2 , * p ;
p= & x ;
x = x + 1 ;
A ) & x    B ) p    C ) & p    D ) & ( x + l )
7 .设int x , y , * p;下列表达式中有错误的是( 
A ) + + x + ( y= 2)    B ) ( x + 1 ) + +
C ) p + +              D )  x + = x + l
8 .下列选项中,与以下程序段等价的是(    )
Int x = l , y , * p ;
p = & x ;
y = + + x ;
A ) int x = l , y , * p=&x ; + + * p ; y = x ;
B ) int y , * p = & x , x = 1 ; + + x ; y = x ;
霍建华的血型C ) int x = l , y , * p ; p=&x ; * p + + ; y = x ;
D ) int x = 1 , y , * p=&x : y = x + + ;
9 .若有宏定义:#define MOD ( x , y ) x%y ,则执行以下语句后的输出结果为(  )
Int z , a = 15 , b = 100 ;
z = MOD ( b , a ) ;
printf ( " % d \ n " , z ) ;
A ) 11      B ) 10      C ) 6      D )宏定义不合法
10 .栈的插入与删除操作是在(  )进行的
A )栈顶      B )栈底      C )任意位置      D )指定位置
11 .以下程序当输入7 时,输出的结果是(    )
( same Pro as 16 , different input ) 男男生子
# include < stdio. h >
main ( )
{
Int x , y , z ;
scanf ( " % d ' , & x ) ;
if ( x > 5 )
{
y = 100 ;
z -5 ;
}
printf (" %d %d %d " , x , y , z ) ;
}
A ) 7 100 -5        B ) 7 3 -5   
C ) 7 100 3        D ) 7 无用数据  无用数据
12 .以下各项中,continue 语句有助于实现的任务是(  )
A )无限执行一个语句
B )绕过循环体的剩余部分,并将控制权转交给循环的开始
C )将控制权传递到循环之外
D ) ( B )和(C )
13 .在下面的代码段中,语句x = 1 会执行(  )次
for ( j = 1 ; j < = n ; j + + ) 徐若瑄 天使心
for ( k = l ; k < = j ; k + + )
x = l ;
A ) n    B ) n ( n + 1 )    C ) n²    D ) n ( n + l ) / 2
14 .在C 语言中,变量所分配的内存空间大小(  )
A )均为一个字节              B )由用户自己定义
C )由变量的类型决定          D )是任意的
15 .若己定义:int*p, a; ,则语句p=a;中的运算符“&”,的含义是(  )
A )位与运算                  B )逻辑与运算
C )取指针内容                D )取变量地址
16 .在C 语言中,具有动态申请内存块功能的函数是(  )
A ) malloc ()    B ) free ()    C ) int ()    D ) delete ()
17 .如果n=2 ,以下程序输出结果是(  )
switch ( n )
{
case (l): printf (" You have chosen to add data \ n"  ) ; break ; case (2): printf ("  You have chosen to delete data \ n "  ) ; break ; case (3): printf (" You have chosen to view data \ n") ;
case ( 4 ) : printf ("  You have chosen to print data \ n " ) ; break ; default : printf ( " Invalid input \ n " ) ; break ;
}
A )You have chosen to add data    B ) You have chosen to delete data C )You have chosen to delete data Invalid input
D )You have chosen to delete data You have chosen to view data
18 .一维数组是(    )
A )一种数据的集合,这些数据均属于同一种类型,并且在存储位置上彼此相邻
B )一种数据的集合,这些数据属于多种类型,并且在存储位置上彼此相邻
C )一种数据的集合,这些数据均属于同一种类型,但在存储位置上没有特定的顺序
D )一种数据的集合,这些数据属于多种类型,在存储位置上没有特定的顺序
19 .以下代码段中的赋值语句产生的结果是(  )
Int x [3] ;
丝绸之路的起点和终点X[3] = 25 ;
A ) 25 被赋给x 的第三个元素    B ) 25 被赋给x 的第二个元素
C ) 25 被赋给x 的所有三个元素  D ) x [3]越界
20 .以下程序的输出结果是(  )
Void main ()
{
char ch [2] 5] = { " 6937 " , " 8254 " } , * p [2] ;
int i , j , s = O ;
for ( i=0 ; i < 2 ; i++
p [i] = ch [i
for ( i=0 ; i < 2 ; i++)
for ( j = 0 ; p [i] [j] ' \ 0 ' ; j +=2 )
s = 10 * s + p [i] [j] -O ' ;
printf ( " % d \ n " , s ) ;
}
A ) 69825    B ) 63825    C ) 6385    D ) 693825
21 .数组int x [4] [5]可以存储(    )个整数
A ) 22      B ) 20      C ) 9      D ) 12
22 .以下数组声明非法的是(    )
A ) int a [] []    B ) int room -2 [2] ;
C ) char x[25] [890];      D ) A B
23 .以下程序的输出结果是(    )
Int a , b ;
Void fun ()
{
a = 100 ;
b = 200 ;
}
Void main ()
{
Int a = 7 , b = 5 ;
fun () ;
} printf ( "%d %d \ n " , a , b ) ;
A ) 10O200    B ) 57    C ) 20010O    D ) 75
24 .在C 语言中,用户定义的数据类型使用以下(    )关键字定义
A ) struct    B ) union    C ) typedef    D )以上三项皆错
25 .以下程序的输出结果是(  )。
Void main ()
{  int a = 0 ,i
for ( i=1 ; i < 5 ; i + + ) 除甲醛排名第一的品牌
switch ( i )
{ case 0 :
Case 3 : a + = 2
Case l :
Case 2 : a + = 3 ;
default : a + = 5 ;
}
}
printf ( " % d ,a )
}
A白蚁怎么消灭才干净31    B13    C10    D20
26 .在C 语言中,以下正确的说法是(  )
A )实参和与其对应的形参各占用独立的存储单元
B )实参和与其对应的形参共占用一个存储单元
C )只有当实参和与其对应的形参同名时才共占用一个存储单元
D )形参是虚拟的,不占用存储单元
27 .若有以下说明和语句:
struct student
{
int age
int num