一、单项选择题(1~30题每小题1分,31~45题每小题2分,共60分)
1.以下合法的用户自定义标识符是(d)。
a、 b-b b、float c、 d、 _isw
2.若变量已正确定义并赋值,以下不符合c语言语法的表达式是(b)。
a、a*b/c; b、3.14%2 c、2, b d、a/b/c
3. 下列不正确的字符常量是(c)
a、'n' b、'1' c、"a" d、'101'
4. 在 c 语言中,表示逻辑值“真”用 (b)
a、1 b、非 0 的数 c、非 1 的数 d、 大于 0 的数。
5. 把x、y定义成float类型变量,并赋同一初值3.14是(c)
a、float x, y=3.14; b、float x, y=2*3.14;
c、float x=3.14, y=x=3.14; d、float x=y=3.14;
6. 若变量已正确定义,值不为2的表达式是(c)
a、2&3 b、1<<1 c、a==2 d、1^3
7. 若变量已正确定义,和语句“if(a>b) k=0; else k=1;”等价的是(c)
a、k=(a>b)?1:0; b、k=a>b;
c、k=a<=b; d、a<=b ? 0 : 1;
8. 设变量定义为“int a, b;”,执行下列语句时,若a和b的值都是10,则应输入 (d)
scanf("a=%d, b=%d",&a, &b);
a、10 10 b、10, 10 c、a=10b=10 d、a=10, b=10
9. 下列程序的输出结果是(d)
fun(int a, int b, int c)
c =a*b;}
void main( )
int c;
fun(2,3,c);
printf(”%dn”,c);
a、0 b、1 c、6 d、无法确定。
10.在c程序中,若对函数类型未加说明,则函数的隐含类型为(a)
a、int b、double c、void d、char
11.表达式 strlen(”hello”) 的值是(b)
a、 4 b、 5 c、 6 d、 7
12.设变量定义为“int a[4];”则不符合c语言语法的表达式是(d)
a、*a b、a[0] c、a d、a++
13.设变量定义为“int x, *p=&x;”,则&*p相当于(a)
a、p b、*p c、x d、*&x
14.若变量已正确定义,不能使指针p成为空指针的是(a)
a、p=eof b、p=0 c、p=’’d、p=null
15.对于以下的变量定义,不符合c语言语法的表达式是(d)
struct node x = p = x;
a、p->pk b、* c、*p->pk d、*
16. 有如下程序。
int runc(int a,int b)
main0该程序的输出的结果是 (d)
a) 12 b) 13 c) 14 d) 15
17. 对于基类型相同的两个指针变量之间,不能进行的运算是 (c)
a)
18. 有如下程序。
long fib(int n)
main0 2 b} 4 c} 6 d} 8
19. 有如下定义。
struct person;
strict person class[10]=;
根据上述定义,能输出字母m的语句是 (d)
a) prinft(“%c”,class[3].mane);
b) pfintf(“%c”,class[3].name[1]);
c) prinft(“%c”,class[2].name[1]);
d) printf(“%c”,class[2].name[0]);
20. 以下所列的c语言常量中,错误的是 (b)
a) 0xff b) 1.2e0.5 c) 2l d) ‘72’
21. 有以下程序段。
int k=0
while(k=1)k++;
while 循环执行的次数是 (a)
a) 无限次 b) 有语法错,不能执行。
c) 一次也不执行 d) 执行1次。
22. 以下程序的输出结果是 (c)
a) 0 b) 29 c) 31 d) 无定值。
fun(int x, int y, int z)
main()
23. 下列程序段的输出结果是 (a)
a) 2 1 4 3 b) 1 2 1 2 c) 1 2 3 4 d) 2 1 1 2
void fun(int *x, int *y)
main()
24. 当调用函数时,实参是一个数组名,则向函数传送的是 (b)
a) 数组的长度 b) 数组的首地址。
c) 数组每一个元素的地址 d) 数组每个元素中的值。
25. 以下程序的输出结果是 (a)
a) 1 b) 2 c) 3 d) 4
long fun( int n)
main()
26. 以下程序的输出结果是 (b)
a) 16 b) 2 c) 9 d) 1
#define sqr(x) x*x
main()
27. 有以下程序。
main()
程序运行后的输出结果是:(d)
a)3 b)5 c)-1 d)-2
28. 以下叙述中正确的是:(a)
a) 构成c程序的基本单位是函数。
b) 可以在一个函数中定义另一个函数。
c) main()函数必须放在其它函数之前。
d) 所有被调用的函数一定要在调用函数之前进行定义。
29. 以下选项中非法的表达式是 :(d )
a)0<=x<100 b)i=j==0
c)(char)(65+3) d)x+1=x+1
30. 下列条件语句中,功能与其他语句不同的是:(d)
a) if(a) printf("%d",x); else printf("%d",y);
b) if(a==0) printf("%d",y); else printf("%d",x);
c) if (a!=0) printf("%d",x); else printf("%d",y);
d) if(a==0) printf("%d",x); else printf("%d",y);
31. 以下不能定义为用户标识符的是 :(d )
a)scanf b)void c)_3com_ d)int
语言中用于结构化程序设计的三种基本结构是:(a)
a) 顺序结构、选择结构、循环结构 b) if、switch、break
c) for、while、do-while d) if、for、continue
33. 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是:( a)
a) scanf("%d%d%d",&a,&b,d); b) scanf("%d%d%d",&a,&b,&d);
c) scanf("%d%d%d",a,b,d); d) scanf("%d%d%d",a,b,*d);
34. 若有定义:int aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是:( c)
a) &aa[0]+1 b) &aa[1] c) &aa[0]++d) aa+1
35. 有以下程序。
main(),p=str;
printf("%s",p+10);
程序运行后的输出结果是:(b)
a) china b)bejing c)ng d)ing
36. 以下程序的输出结果是:( a )
main()
int a=0,i;
for(i=1;i<5;i++)
switch(i)
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
printf("%d",a);
a)31 b) 13 c) 10 d) 20
37. 有以下程序。
#include <
main(int argc ,char *ar**[ ]
int i,len=0;
for(i=1;ib?(b>c?1:0):0;功能等价的是:(a )
a)if((a>b)&&b>c)) k=1; b) if((a>b)||b>c))k=1;
elsek=0; elsek=0;
c)if(a<=b)k=0; d)if(a>b)k=1;
else if(b<=c)k=1; else if(b>c)k=1;
else k=0;
若程序中定义了以下函数。
doublemyadd(double a,double b)
return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:(a )
a)double myadd(double a,b); b)double myadd(double,double);
c)double myadd(double b,double a); d)double myadd(double x,double y);
43. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为:(a )
a)0 b)1 c)-1 d)一个非0值。
44. 下列关于c语言数据文件的叙述中正确的是:(d )
a)文件由ascii码字符序列组成,c语言只能读写文本文件。
b)文件由二进制数据序列组成,c语言只能读写二进制文件
c)文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件。
d)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件。
45. 有以下程序。
main()
int aa[4][4]=,
int i,s=0;
for(i=0;i<4;i++)s+=aa[1];
printf("%d",s);
程序运行后的输出结果是:(b )
a) 11 b) 19 c) 13 d) 20
二、填空题(每题2分,共30分)
1.表示“x≥y≥z”的c表达式是___x>=y &&y>=z __
2.下列程序段的输出是__1___
printf("%on", 010<<1^1);
3.下列程序段的输出是__6,90___
int k;
float s;
for (k=0, s=0; k < 7; k ++
s +=k/2;
printf("%d, %fn", k, s);
4.下列程序段的输出是__5,25___
#define f(a, b, x)a*x+b
printf("%d, %dn", f(3,2,1), f(6, 5, f(3, 2, 1)))
5.下列程序段的输出是。
main()
int k;
for(k=1; k<5; k++)
6.下列程序段的输出是__5 8___
# include <
int f(int x)
static y=1;
y++;x +=y;
return x;
void main()
int k;
k=f(3);
printf("%d%dn", k, f(k));
7.下列程序段的输出是___5__。
int*p,*q,k = 5 ,j = 6 ;
q = k ;p = q ; q = j ;
printf("%d", p);
8.函数。void f(char s[ ]char t[ ]
等价于。void f(char *s, char *t)
9.下列程序段的输出是_ ne,s __
char *a[2]=,p=a;
printf("%s,",p++)1);
printf("%cn", p-1);
10.下列程序编译后生成 运行 tinputoutputzoooil 的输出结果是__zoo__。
void main(int argc, char * ar**[ ]
int k;
char *p=ar**[1];
for(k=2; k0)p=ar**[k];
printf("%sn", p);
11.以下程序段的输出结果是 __11__
int i=9;
printf("%o",i);
12.以下程序输出的结果是 0
main()
int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d",d);
13.以下程序中给指针p分配三个double型动态内存单元,请填空。
# include <
main (
double *p;
p=(double *)malloc( 3*sizeof(double) )
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f”,p[0],p[1],p[2]);
14.有以下程序。
void f( int y,int *x)
y=y+*x;*x=*x+y;}
main( )
int x=2,y=4;
f(y,&x);
printf(“%d %d”,x,y);
执行后输出的结果是 8 4
15.以下程序的运行结果是 2002shangxian
# include <
typedef struct student
char name[10];
long sno;
float score;
stu;main( )
stua=,b=,c=,d, *p=&d;
d=a;if(strcmp( d=b;
if(strcmp( d=c;
printf(“%ld%s”,三、程序(段)填空题(每空2分,共10分)
1. 以下函数返回a所指数组中最小的值所在的下标值,请填空:
fun(int *a, int n)
2. 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:after swap 5, 3
void main( )
int a=3, b=5;
swap( &a, &b )
printf("after swap %d, %d", a, b);
swap( int *p, int *q )
《C语言程序设计》专升本考试大纲
c语言程序设计 专升本考试大纲。一 总要求。本课程地位 本课程是计算机专业的核心课程之一。本课程性质 本课程是计算机专业的专业基础课程。本课程了解 熟悉 掌握的主要内容 了解c语言的主要特征 常用算法描述以及其它相关基础知识 掌握c语言中顺序程序设计 选择程序设计 循环程序设计 指针 结构体共用 函...
C语言程序设计专升本考试大纲
c语言程序设计 专升本考试大纲。一 总要求。本课程地位 本课程是计算机专业的核心课程之一。本课程性质 本课程是计算机专业的专业基础课程。本课程了解 熟悉 掌握的主要内容 了解c语言的主要特征 常用算法描述以及其它相关基础知识 掌握c语言中顺序程序设计 选择程序设计 循环程序设计 指针 结构体共用 函...
C语言程序设计试卷A
c语言程序设计期末考试试卷 a 荆楚理工学院。2009 2010学年度第二学期期末考试。c语言程序设计 试题a卷。机制专业08年级120分钟2010年6月。说明 本试卷中的程序用于tc2.0,但均省略了getch 语句。一 用c语言描述下列命题 每小题1分,共5分 1 a小于b或a小于c。2 a或b...