浙江科技学院考试试卷
浙江科技学院
2012 - 2013学年第1学期考试试卷A 卷信息、建工、
机械、经管、轻工、理学 学院 2012 年级 理工科专业
一、判断题(本大题共12小题,每题小1分,共12分) 1. “C ”指字符常量C 。
2. if(a==b)语句可用于判断两个字符串a 和b 是否相等。
3. 当需要接受用户从键盘输入的含有空格的字符串时,应使用gets()函数。
4. char *a[5]定义了一个一维指针数组,它有5个元素,每个元素都字符类型的指
针。
5. (a=3)>(b=5)是合法的关系表达式。
6. continue 语句的作用是结束整个循环的执行。
7. 若有说明: int a[3][4]; 则数组a 中各元素可在程序的编译阶段得到初值0。 8. char *p; 定义了一个指针变量p ,其值是字符类型的。 9. main 函数中定义的变量称为全局变量。
10. 如果函数的形参和实参类型不一致,以实参的类型为准。
11. 对于二维数组a[3][4],a+1与a[1]完全一样,都是第一行的行地址。 12. 在标准C 语言中,函数只能有一个return 语句。
二、单选题(本大题共20小题,每题1分,共20分)
1. t 为int 类型,在进入下面的循环之前,t 的值为0,while( t=l ) { ...... }
则以下叙述中正确的是( )。
A. 循环控制表达式的值为0
B. 循环控制表达式的值为1
C.
循环控制表达式不合法
D.
以上说法都不对
2. 若有语句scanf("%d%d",&a,&b);要使变量a,b 分别得到10和20,正确的输入形
式为( )。 A. 10 20 B. 10,20 C. 1020
D.
10:20
3. 以下4个选项中,不能看作一条C 语言语句的是( )。
专业班 学 姓 ………………………………………………………………………装订线……………………………………………………………………………………
A. ;
B. a=1,b=1,c=1;
C. if(x>0);
D. if(b==1) k=2;n=3;
4.函数strlen("1234\0xy")的值为()。
A. 7
B. 8
C. 4
D. 9
5.若变量c为char类型,能正确判断出c为大写字母的表达式是()。
A. 'A'<=c<='Z'
B. (c>='A')||(c<='Z')
C. ('A'<=c)and ('Z'>=c)
D. (c>='A')&&(c<='Z')
6.有如下程序段
int a=14,b=15,x;
char c='A';
x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为()。
A. true
B. false
C. 0
D. 1
7.运行下面程序:
main()
{ char c[ ]={'a','b','c','d', 'e', 'f', 'g','h','\0'};
int i,j;
i=sizeof(c);
j=strlen(c);
printf("%d %d\n",i,j); } 则输出结果是()。
A. 9 9
B. 8 9
C. 1 8
D. 9 8
8.在下面程序段中,while语句的循环次数是()。
main()
{ int k=0;
while(k<10)
{ if (k<1) continue;
if(k==5) break;
k++;
}
......
}
A. 0
B. 10
C. 6
D. 死循环,不能确定次数
9.以下选项中,与k=n++完全等价的表达式是()。
A. k=n,n=n+1
B. n=n+1,k=n
C. k=++n
D. k+=n+1
10.有以下定义
#include
char a[10],*b=a;
不能给a数组输入字符串的语句是()。
A. gets(a)
B. gets(a[0]);
C. gets(&a[0]);
D. gets(b)
11.在下列选项中,没有构成死循环的程序段是()。
A. int i=100;
for(;;);
i--; B. int i=100;
while(1)
{i=i&100+1;
if(i>100)break;
}
C. int k=1000;
for(;k>100;k--); D. int s=36;
while(s);
--s;
12.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。
A. 3.500000
B. 3
C. 2.000000
D. 3.000000
13.有以下程序,其for语句中循环体执行的次数是()。
#include
#define N 2
#define M N+1
#define NUM (M+1)*M/2
main()
{ int i,n=0;
for(i=1;i<=NUM;i++)
n++;
printf("%d",n);
printf("\n");
}
A. 5
B. 6
C. 8
D. 9
14.下列程序执行后的输出结果是()。
main()
{
int a[2][2],*p,i;
p=&a[0][0];
for(i=0;i<4;i++) p[i]=i+1;
printf("%d \n",a[1][1]);
}
A. 3
B. 4
C. 9
D. 随机数
15.设有如下定义:
struct sk
{int a;
float b;
}data,*p; 若有p=&data;,则对data中的a域的正确引用是()。
A. (*p).a
B. (*p).data.a
C. )p->data.a
D. )p.data.a
16.若有以下调用语句,则不正确的fun函数的首部是()。
main()
{ ......
int a[20],n;
......
fun(n,&a[10]);
......
}
A. void fun(int m, int x[ ])
B. void fun(int s, int h[ ])
C. void fun(int p, int *s)
D. void fun(int n, int a)
17.以下程序运行后输出结果是()。
#include
Int func(int a, int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{
int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
A. 8,15
B. 8,16
C. 8,17
D. 8,8
18.有如下函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));则该函数调用语句中,含有
的实参个数是()。
A. 4
B. 3
C. 5
D. 有语法错
19.已知链表结点定义语句为“struct node{int data; struct node *next;};”,在下图所
示的链表中,指针变量p1、p2、p3均已正确定义,并用于指向链表结点,指针变量p1总是作为头指针指向链表的第一个结点。
p1
若有以下程序:
p3=p1;p1=p1->next; p2=p1;
while( p2->next)
p2=p2->next;
p2->next=p3;
p3->next=NULL;
该程序实现的功能是()。
A. 首结点成为尾结点
B. 尾结点成为首结点
C. 删除首结点
D. 删除尾结点
20.当int x,a=1,b=3,c=5,d=4;时,执行下面一段程序后,x的值为()。
if(a