长安大学08 - 09c语言A题

2019-09-01 15:14

长安大学20 08 -20 09 学年第 二 学期 试题(A)卷

课程名称 学生姓名 C语言程序设计 学院 考试日期 2009年7月 8 日 学号 共四题 班级 注意:所有答案均写在答题纸上 一、选择题(每题2分,共60分) 1.下列关于C程序设计语言的正确说法是 。 A.C语言只适合进行系统程序设计 B.一个C语言程序也可以不含main函数 C.C程序的基本组成单位是函数 D.在C程序中, 注释说明只能位于一条语句的后面 2.下列常数中不能作为C语言常量的是 。 A.2.5e-2 B. 0xA5 C 3e2 D.0582 3.若变量已正确定义并赋值,下面符合C语言语法的表达式是 。 A.a=b=c+2 B.a=a+7=c+b C.int 12.7%5 D.a:=b+1 4.设x,y,i,j均为整型变量,且x=9,y=2,则执行i=x--; j=++y;语句以后,x,y,i,j的值是 。 A.8,3,9,3 B.8,3,8,3 C.8,3,9,2 D.8,2,9,3 5.设有定义int a;则执行语句a=1/5+3%4+4.5/5后a的值为 。 A.3.900000 B.3 C.3.9 D.1.850000 6.下列不是赋值语句的是 。 A. a+=c; B. a=12; C. a==c; D.a=a+1; 7.使变量m被赋值为486, 变量n被赋值为-286,则运行语句scanf(\时正确的输入是 (下面↙代表回车键)。 A.m=486 n=-286↙ B.m=486,n=-286↙ C.m=486↙n=-286↙ D.123,456↙ 8.设a ,b, c, d, m, n均为int型变量,且a=8,b=7,c=6,d=5,m=2,n=2,则逻辑表达式 (m=a>b)||(n=c void main() { int x=102,y=012; printf(\ A. 10,01 B. 02,12 C. 102 10 D. 102,10 10.表达式(x=3*2,x+5),x=x+10执行后x的值为 。 A.11 B.21 C.16 D. 6 11. 假定所有变量均已正确说明,下列程序段运行后x的值是 。 a=b=0; c=8; x=35; if(!a) x --; else if(b);if(!c) x=3;else x=4; 第 1 页(共 7 页)

A.4 B.35 C.3 D.34 12. 下面程序的运行结果是 。 #include int m=8; f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c)/m;} void main() { int m=2, i; for(i=0;i<3;i++) printf(\A.001 B.000 C.011 13. 下面程序的输出结果是 。 #include D.010 void main( ) {int x=3 ; do{printf(“-”,x--);}while(x);} A. 3 B. 3 2 1 C. 不打印任何内容 D.陷入死循环 14.以下关于for语句说法中错误的是 。 A.for语句可以完全替代while语句。 B.for语句中如果省略表达式2,则相当于“死循环”。 C.for语句中表达式2表示循环条件,因此它只能是关系表达式或逻辑表达式。 D.使for循环趋于结束的语句可以写入for语句的循环体中。 15. 以下合法的数组定义是 。 A. int a=5, M[a]={1,2,3,4,5}; B. int a[][3]={ 0,1,2, 6,5,4, 9,8,7}; C. char a[11];a=\’basic’}; 16. 执行下面的程序段之后,i的值是 。 int i,x; for(i=1,x=1;i<=50;i++) {if(x>=10)break; x+=5; continue; x-=3;} A.8 B.5 C.6 D.3 17.以下程序的输出结果及函数递归调用的次数是 。 #include fun (int k) { if (k>0) fun(k-1); printf(\void main( ) { int w=5; fun(w); } 第 2 页(共 7 页) A.输出54321递归调用4次 B. 输出12345递归调用4次 C.输出012345递归调用5次 D. 输出543210递归调用5次 18.若有两个字符串str1,str2,要比较二者是否相等,正确的if语句是 。 A. if(strcmp(str1,str2)==0) B. if(str1=str2) C. if((str1-str2)==0) D. if(str1==str2) 19.C语言规定,简单变量做函数实参时,它和对应形参之间的数据传递方式是 。 A.可以由用户指定传递方式 B.只能由实参传递给形参的单向值传递 C.地址传递 D.由实参值传递给形参,再由形参返回到调用处。 20.若程序中定义了以下函数 double mysum(double a,double b) { return (a+b);}并将其放在调用语句所在函数之后,则在调用之前应该对该函数进行说明, 以下选项中错误的说明是 A.double mysum(double a, double b); B.double mysum(double m, double n); C.double mysum(double a, b); D.double mysum(double, double); 21.下面叙述错误的是 . A.在变量初始化方面,自动类变量在每调用一次函数时都赋一次初值。 B.局部变量原则上只在定义它们的函数内部有效,但main函数的局部变量在整个程序中都有效。 C.局部静态变量不能定义成寄存器变量 D.全局变量在程序的全部执行过程中都占用存储单元 22.执行以下程序的输出结果为 。 #include #define P(a,b) a*b+1 void main() { int x=1,y=2,z; z=P(x+y,4+3); printf(“%d”,z);} A.22 B. 16 C.21 D.13 23.当说明一个共用体变量时,系统分配给它的内存是 A.各成员所需内存量的总和 B.共用体变量第一个成员所需内存量 C.成员中占内存最大者所需的容量 D.共用体变量最后一个成员所需内存量 24.设有如下定义 struct student { int num; char name[20]; float score; }stu[5],*p=stu;则下列对于成员引用的方式正确的是 。 A.(*p).score B.(*p)->score C.*p.score D.*p.name 25.一个main(int a, char *argv[])函数带参数,可执行文件名为prog.exe,若命令行输入 prog abcd efg 123,则printf(\的结果是 . 第 3 页(共 7 页) A.3,14 B.4,3 C.3,3 D.4,4 26.若已定义int a[5][6], (*p)[6]=a;下面表达式不能表示a[2][3]元素地址的是 。 A.*a+2*6+3 B.*(p+2)+3 C. a[2]+3 D. *((p+2)+3) 27.下面程序段的运行结果为 。 #include void swap1(int c[]) { int t; t=c[0]; c[0]=c[1]; c[1]=t;} void swap2(int c0,int c1) { int t; t=c0; c0=c1; c1=t;} void main() { int a[2]={0,1},b[2]={0,1}; swap1(a); swap2(b[0],b[1]); printf(\ A.1010 B.0110 C.0101 D.1001 28. 若有定义 int (*p[3])(int);则以下说法正确的是 A. p是指向一维数组的指针,一维数组包含3个元素。 B. p是指向函数的指针,函数返回值是int型的指针。 C. p是函数指针数组,函数返回值是int型。 D. p是指向函数的指针,函数返回值是int型。 29.以下程序的运行结果是___ _____ #include void main() { char a[10]={'1','2','3','4','5','6','7','8','9',’\\0’}, *p, **q; int i=8; p=a+i; q=&p; printf(\A. 6 B. 6789 C. '6' D. 789 30.下列关于C语言的文件操作叙述正确的是 。 A.先打开文件,然后对其读或写,最后关闭文件 B.先测试文件已存在,再打开文件 C.fputc函数可以从指定文件中读出一字符 D.对操作顺序无要求 二.阅读下列程序,写出运行结果(10分)(1、2题各2分, 3、4题各3分) 1. 以下程序的运行结果是 。 #include struct ord {int x,y;}dt[2]={1,2,3,4}; void main() { struct ord *p=dt; printf(\ printf(\ 第 4 页(共 7 页) 2.下面程序输出结果是____ ______. #include void main( ) { char a[]=\ char *p1,*p2; int i; p1=a; p2=b; for(i=0;i<7;i++) if(*(p1+i)==*(p2+i)) printf(\ 3.以下程序的运行结果是 。 #include #include void main( ) { int i=0; char s1[10]=“ABCD”,s2[10]=“EFG”, *p1=s1, *p2=s2; strcat(p1,p2); while(s2[i++]!=’\\0’) s2[i]=s1[i]; puts(p2);} 4.以下程序的输出结果为________________ #include void main() { void func(int *x,int n); int i,a[]={1,3,5,7,9,11,13,15}; func(a,5); for(i=3;i<=5;i++) printf(\void func(int *x,int n) { int *p,t,*i,*j,m=(n-1)/2; i=x; j=x+n-1; p=x+m; for(;i<=p;i++,j--) {t=*i; *i=*j; *j=t;} } 第 5 页(共 7 页)


长安大学08 - 09c语言A题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014中级经济法重点关注 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: