川农网院《C语言》期末机考
《C语言》期末机考1.[单选题] 已定义以下函数
int fun( int*p)
{return*p;}
fun函数返回值是 ( )
A.形参p中存放的值
B.一个整数
C.不确定的值
D.形参p的地址值
答:——B——
2.[单选题] 假定所有变量均已正确说明,下列程序段运行后x的值是:<br />a=b=c=0;x=35;<br />if(!a)x--;<br />else if(b);<br />if(c)x=3;<br />else x=4;
A.34
B.35
C.4
D.3
答:————
3.[单选题] 在宏定义 #define PI? 3.14159中,用宏名PI代替一个:
A.字符串
B.双精度数
C.单精度数
D.常量
答:————
4.[单选题] 以下程序的输出结果是:<br />#include<br />main(? )<br />{??? char??? *p1,*p2,str="ABCDEFG";<br />p1="abcd";????? p2="efgh";<br />strcpy(str+1,p2+1);??? strcpy(str+3,p1+3);<br />printf("%s",str);<br />}
A.Afgd
B.Abfhd
C.AfghdEFG
D.Afghd
答:————
5.[单选题] 在C语言中,合法的长整型常数是:
A.2.1869e10
B.4962710
C.0.054838743
D.0L
答:————
6.[单选题] 若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;<br />FILEL? CHINA? BEIJING? SHANGHAI<br />程序的输出结果是:<br />main(int argc,char *argv[])<br />{?? while(argc-->0)<br />{??? ++argv;printf("%s? ",*argv);}<br />}
A.CHINA BEIJING SHANGHAI
B.FILEL CHINA BEIJING
C.F C B
D.C B S
答:————
7.[单选题] 能正确表示“当x的取值在和范围内为真,否则为假“的表达式是_______。
A.(x>=1) || (x<=10) || (x>=200) || (x<=210)
B.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
C.(x>=1)&&(x<=10) || (x>=200)&&(x<=210)
D.(x>=1) || (x<=10)&&(x>=200) || (x<=210)
答:————
8.[单选题] 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( )
A.称为函数的循环调用
B.称为函数的间接递归调用
C.称为函数的直接递归调用
D.C语言中不允许这样的递归调用
答:————
9.[单选题] 请选出以下语句的输出结果:<br />printf("%d\n",strlen("\t\"\065\xff\n"));
A.输出项不合法,无正常输出
B.8
C.14
D.5
答:————
10.[单选题] 不能把字符串:Hello!赋给数组b的语句是:
A.char b;b="Hello!";
B.char b="Hello!";
C.char b={'H','e','l','l','o','!'};
D.char b;strcpy(b,"Hello!");
答:————
11.[单选题] 设有如下程序 :<br />#include<stdio.h><br />main()<br />{ int **k, *j, i=100;<br />j=&i;?? k=&j;<br />printf("%d\n", **k);<br />}<br />上面程序的输出结果是
A.100
B.运行错误
C.j的地址
D.i的地址
答:————
12.[单选题] 以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。
A.只能是整数0或非0整数
B.可以是任意合法的表达式
C.只能是整数0或1
D.可以是结构体类型的数据
答:————
13.[单选题] 执行以下程序后,b的值为__??? ___。<br />main()<br />{ int a, b, k=4, m=6, *p1=&k, *p2=&m;<br />a=p1= =&m;<br />b=(-*p1) / (*p2)+7;<br />printf("a=%d", a);<br />printf("b=%d", b);<br />}
A.a=0 b=7
B.a=0 b=-7.67
C.a=1 b=7
D.a=1 b=-7.67
答:————
14.[单选题] 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是:
A.2.0
B.2
C.2.5
D.1
答:————
15.[单选题] 有以下程序<br />#include<br />main()<br />{ int?? a,b,c=246;<br />a=c/100%9;<br />b=(-1)&&(-1);<br />printf("%d,%d\n",a,b);<br />}<br />输出结果是:
A.2,1
B.4,3
C.2,-1
D.3,2
答:————
16.[单选题] 执行以下程序段时:<br />x=-1;<br />do? {x=x*x;??? }?? while(! x);
A.系统将提示有语法错误
B.循环体将执行两次
C.循环体将执行一次
D.循环体将执行无限次
答:————
17.[单选题] 有以下函数<br />char *fun(char *p)<br />{ return p; }<br />该函数的返回值是:
A.形参p中存放的地址值
B.形参p自身的地址值
C.一个临时存储单元的地址
D.无确切的值
答:————
18.[单选题] 请选出合法的C语言赋值语句()
A.k=int(a+b)
B.a=58,b=58
C.i++;
D.a=b=58
答:————
19.[单选题] 下列运算符中优先级最高的是_______。
A.!=
B.+
C.<
D.&&
答:————
20.[单选题] 设有以下宏定义:<br />#define????? N?????? 3<br />#define????? Y(n)?????? ( (N+1)*n)<br />则执行语句:z=2 * (N+Y(5+1));后,z的值为:
A.42
B.出错
C.54
D.48
答:————
21.[多选题] 以下能对二维数组a进行正确初始化的语句是( )
A.int a={{1, 2}, {3, 4}, {5, 6}};
B.int a[ ]={{1, 2}, {0}};
C.int a[ ]={1, 2, 3, 4, 5, 6};
D.int a={0};
答:————
22.[多选题] 能把字符串:Hello!赋给数组b的语句是( )
A.char b={‘‘H‘‘,‘‘e‘‘,‘‘l‘‘,‘‘l‘‘,‘‘o‘‘,‘‘!‘‘};
B.char b="Hello!";
C.char b;strcpy(b,"Hello!");
D.char b;b="Hello!";
答:————
23.[多选题] 以下不合法的字符型常量是( )
A.‘‘\081‘‘
B."\n"
C.‘‘\x13‘‘
D.‘‘\065‘‘
答:————
24.[多选题] 若要求定义具有10个int型元素的一维数组a,则以下定义语句中正确的是 ( )
A.intn=10,a;
B.inta;
C.#defineN10
inta;
D.#definen5
inta ;
答:————
25.[多选题] 对于基本类型相同的两个指针变量之间,可以进行的运算是( )
A.<
B.+
C.=
D.-
答:————
26.[多选题] 下列定义变量的语句中正确的是( )
A.floatUS$;
B.int_int;
C.charFor;
D.doubleint_;
答:————
27.[多选题] 已知大写字母A的ASCⅡ码是65,小写字母a的ASCⅡ码是97。以下能将变量c中的大写字母转换为对应小写字母的语句是( )
A.c=c-‘‘A‘‘+‘‘a‘‘
B.c=(c-‘‘A‘‘)%26+‘‘a‘‘
C.c=c+32
D.c=(‘‘A‘‘+c)%26-‘‘a‘‘
答:————
28.[多选题] 设a为整型变量,能正确表达数学关系:10<a<15 的C语言表达式是( )
A.a==11||a==12||a==13||a==14
B.10<a<15
C.(a<10)||(a>15)
D.a>10&&a<15
答:————
29.[多选题] 设有以下定义和语句
charstr="Program", *p;
p=str;
则以下叙述中错误的是( )
A.str数组长度和p所指向的字符串长度相等
B.*p与str中的值相等
C.可以执行p++操作
D.可以执行str++操作
答:————
30.[多选题] 以下合法的字符常量是()
A.‘‘\018‘‘
B.‘‘\0xcc‘‘
C.‘‘\"‘‘
D.‘‘\\‘‘
答:————
31.[多选题] 若有定义:int aa;则以下表达式中能代表数组元aa的地址的是 ()
A.aa+1
B.&aa++
C.&aa
D.&aa+1
答:————
32.[多选题] 以下能正确进行字符串赋初值的语句是( )
A.char str={‘g‘‘,‘o‘‘,‘o‘‘,‘d‘‘};
B.char str="good!";
C.char str[]="good!";
D.char *str="good!";
答:————
33.[多选题] 按照C语言规定的用户标识符命名规则,能出现在标识符中的是( )
A.连接符
B.下划线
C.大写字母
D.数字字符
答:————
34.[多选题] 对于下面①,②两个循环语句,正确的描述是( )。① while(1);
② for( ; ; );
A.②循环一次
B.②是无限循环
C.①是无限循环
D.①循环一次
答:————
35.[多选题] 以下错误的函数首部定义形式是( )
A.double fun (int x ; int y)
B.double fun (int x , int y)
C.double fun (int x , int y) ;
D.double fun (int x , y) ;
答:————
36.[多选题] 已有定义:int i,a,*p; , 则不合法的赋值语句是( )
A.p=100;
B.p=&a+2
C.p=a+2;
D.p=a
答:————
37.[多选题] sizeof(double)是
A.一个整型表达式
B.一个双精度型表达式
C.一种函数调用
D.sizeof是运算符
答:————
38.[多选题] 若有定义语句:double x={1.0,2.0,3.0,4.0,5.0}, *p=x;则正确引用x数组元素的是( )
A.x
B.*p
C.*(p+1)
D.*x
答:————
39.[多选题] 以下叙述中正确的是( )
A.赋值表达式末尾加分号就构成赋值语句
B.C语句必须以分号结束
C.空语句出现在任何位置都不会影响程序运行
D.复合语句在语法上被看作一条语句
答:————
40.[多选题] 设有定义:int k=1, m=2;float f=7;,则以下选项中符合C语言语法的表达式是 ( )
A.k=k>=k
B.k%int(f)
C.k<>m
D.-k++
答:————
41.[问答题] 简述break;和 continue;语句的不同?
答:————
42.[填空题] Main(){换行} { int? a; {换行} int? i,j;{换行} for (i=0;i<5;i++){换行}for ( j=0;j<5;j++){换行} if ((i==j)||(j==0)?? a=1;{换行} else a=a+a ;{换行} for (i=0;i<5;i++){换行} {for ( j=0;j<5;j++) {换行}printf(“%d? ”,a);{换行} printf(“\n”); {换行}} {换行}}{换行}
答:————
页:
[1]