诚信
保证
班
级
:
学
号:
姓
名
:
装
订
线
编号:
成绩
西北工业大学考试试题(卷)
2008 -2009 学年第二学期
开课学院 计算机学院 课程 C语言程序设计 学时 48
考试日期 考试时间 2 小时 考试形式(闭)卷
本人知晓我校考场规则和违纪处分条例的有关规定,保证遵守考场规则,诚实做人。 本人签名:
一:单项选择题(共20分。1题每小题1分,其它每题1分)
1 对于下面的表示,请在相应的小题前面的()内填入A,B,C,D,E,F,G。A,B,C,D,E,F,G的含义如下:
A 合法的标示符 B C语言的关键字 C 合法的字符串 D合法的字符常数
E合法的整常数 F合法的浮点常数 G非法表示
( B )(1) register
( A )(2) RETURN
( C )(3) "a"
( D)(4) ‘\"’
( F)(5) 0.5F
2一个程序的执行是从 A :
(A)本程序的main函数开始,到main函数结束
(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
(C)本程序的main函数开始,到本程序文件的最后一个函数结束。
(D)本程序文件的第一个函数开始,到main函数结束。
3 int x=3,y=2;则表达式x+=x*=y+8的值为 。
(A)28 (B)30 (C)60 (D)17
4设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 。
(A)2.7 (B)3.7 (C)4.7 (D)4.03
5设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是
(A) 10101001 (B) 10101000 (C) 11111101 (D) 01010101
6以下能正确定义字符串的语句是( )
(A)char str[]={‘\064'}; (B) char str=”\x43”;
(C) char str=”; (D) char str[]=”\0”;
7以下数组定义中错误的是( )
(A) int x[][3]={0};
(B) int x[2][3]={{1,2},{3,4},{5,6}};
(C) nt x[][3]={{1,2,3},{4,5,6}};
(D)int x[2][3]={1,2,3,4,5,6};
注:1. 命题纸上一般不留答题位置,试题请用小四、宋体打印且不出框。
2. 命题教师和审题教师姓名应在试卷存档时填写。 共7页 第1页
西北工业大学命题专用纸
班
级
:
学
号:
姓
名
:
8若要求从键盘读入含有空格字符的字符串,应使用函数( )
(A)getc() (B) gets()
(C) getchar() (D) scanf()
9下四个程序中,完全正确的是( )
(A)#include <…> (B)#include <…>
main(); main()
{/*programming*/ {/*/programming/*/
printf(“programming!
”);} printf(“programming!
”);}
(C) #include <…> (D) include <…>
main() main()
{/*/*programming*/*/ {/*programming*/
printf(“programming!
”);} printf(“programming!
”);}
10有以下程序
char fun(char x , char y)
{ if(x”,fun(fun(a,b),fun(b,c)));
} 程序的执行结果是( )
(A) 函数调用出错 (B) 8 (C) 9 (D) 7
11以下程序中,while循环的循环次数是
main()
{ int i=0;
while(i<10) { if(i<1) continue;
if(i==5) break;
i++;}......}
(A) 死循环,不能确定次数 (B) 1 (C) 6 (D) 10
12现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。
struct node
{
char data;
struct node *next;
}*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是( )
(A)q->next=r->next; p->next=r; r->next=q;
(B) p->next=r; q->next=r->next; r->next=q;
共7页 第2页
西北工业大学命题专用纸
班
级
:
学
号:
姓
名
:
(C) q->next=r->next; r->next=q; p->next=r;
(D) r->next=q; p-next=r; q-next=r->next;
13下列程序段中,功能与其它程序段不同的是( )。
(A)for(i=1,p=1;i<=5;i++) p*=i;
(B)for(i=1;i<=5;) { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}
(D)i=1;p=1;do { p*=i;i++;} while(i<=5);
14已知下列共用体定义:
union u_type
{ int I ;
char ch ;
} temp ;
现在执行“temp.I=266”,temp.ch的值为( ):
(A) 266 (B) 256 (C) 10 (D) 1
15 有以下程序
int fun1(double a){return a*=a;}
int fun2(double x,double y)
{
double a=0,b=0;
a=fun1(x); b=fun1(y); return (int)(a+b);
}
main()
{double w; w=fun2(1.1,2.0);……}
程序执行后变量w中的值是( )
(A)5.21 (B) 5 (C) 5.0 (D) 0.0
16有以下程序
void swap(char *x,char *y)
{
char t;
t=*x; *x=*y; *y=t;
}
main()
{
char *s1=”abc”,*s2=”123”;
swap(s1,s2); printf(“%s,%s
”,s1,s2);
}
程序执行后的输出结果是( )
(A) 123,abc (B) abc,123
(C) 1bc,a23 (D) 321,cba
共7页 第3页
西北工业大学命题专用纸
班
级
:
学
号:
姓
名
:
二:填空(每题2分)
1. 当a=5,b=4,c=2时,表达式a>b!=c的值是____________
2. C语言描述“x和y都大于或等于z”的表达式是
3. 以下程序的输出结果是_______
main()
{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf(“%d
”,s);
}
4. 有语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]= ______.
5. 在C语言程序中,对文件进行操作首先要_______________;然后对文件进行操作,最后要对文件实行__________操作,防止文件中信息的丢失。
6.在C语言中,函数的隐含存储类别是____________。
7. 写出下面表达式的值
x=2 ; y=4;(x++)+y _______ 3+4>=7-10______
x=2,y=2; ++x&&++y_______ x=3 ; x+=x-=2 _______
8. 以下程序的运行结果是 。
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{
int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d
",k);
}
9 C语言提供的三种逻辑运算符是 、 和!。
10设x为int型变量,请写出描述“x是偶数”的表达式是: 。