《C 语言程序设计》样卷一
一、选择题()
[1]一个C 程序总是从______
A )主过程开始执行
B )主函数开始执行
C )子程序开始执行
D )主程序开始执行 [2]若有代数式2lnxcosx/3x,则正确的C 语言表达式是______
A)2*ln(x)*cos(x)/3*x
B)2*ln(x)*cos(x)/(3*x)
C)2*log(x)*cox(x)/3*x
D)2*log(x)*cos(x)/(3*x)
[3]若有以下类型说明语句:char a; int b; flaot c; ouble d; 则表达式a*b+d-c 的结果类型为______
A)float B)char C)int D)double
[4]已知字母A 的ASCII 码为十进制数65,变量ch1为字符型,则执行语句 ch1=`A`+`6`-`3`; 后,ch1中的值是______
A)D B )68 C )一个不确定的值 D )C
[5]putchar 函数可以向终端输出一个______
A)整型变量值 B)实型变量值 C)字符串 D)字符或字符型变量值
[6]已知a,b,c 为int 型变量,若有输入语句:
scanf (“a=%db=%dc=%d ”, &a,&b,&c) ; 为使a 值为1,b 值为3,c 值为2,从键盘输入数据的正确型式应当是______
A )123 B) a=1b=3c=2 C) 1 3 2 D) a=1 b=3 c=2
[7]判断char 型 变量c1是否为大写字母的正确表达式______
A) ?A?<=c1<=?Z? B) (c1>=?A?)&(c1<=?Z?) C) (c1>=?A?)&&(c1<=?Z?) D) (…a<=c1?)AND(…Z?>=c1) [8]下面程序所表示的函数学关系是
x=-1; if(a!=0) if(a>0)x=1;else x=0; A)
??
?
??>=<=0)1(a 0)
0(a 0)1(a -x B)
??
?
??>=<=0)0(a 0)
1(a -0)1(a x C)
??
?
??>=<=0)1(a 0)
1(a -0)0(a x D)
??
?
??>=<=0)0(a 0)
1(a 0)1(a -x
[9]以下关于switch 语句和break 语句的描述中正确的是______
A ) 在switch 语句中必须使用break 语句
B ) break 语句只能用于switch 语句中
C ) break 语句只能用于循环体中
D ) 在switch 语句中使用break 语句或continue 语句作用相同
[10]以下对一维数组a 的正确说明是______
A )char a(10); B) int a[ ]; C) int k=5,a[k]; D) char a[ ]={…a?,?b?,?c?};
[11]若有说明语句: int a[ ][3]={1,2,3,4,5,6,7,8}; ,则a 数组的行数为______
A)3 B)2 C)无确定值 D)1
[12]若二维数组y 有m 列,则在y[i][j]前的元素个数为______
A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1
[13]C 语言允许函数值类型的缺省定义,此时该函数值隐含的类型是______
A )float 型 B) int 型 C) long 型 D) double 型
[14]以下有关宏替换的叙述不正确的是______
A) 宏名不具有类型 B) 宏名必须大写字母表示 C) 宏替换只是字符替换 D) 宏替换不占用运行时间 [15]设已有说明语句:int i=5,*q;,若要建立如图所示的存储结构,以下正确的赋值语句是:_
A) q=i; B) *q=i; C)q=&i; D)*q=&i;
[16]若有定义:int x[5],*p=x; ,则不能代表数组首地址的是______ A )x B)&x[0] C)&x D)p
[17]当定义一上结构体变量时系统分配给它的内存是______
A ) 结构中每一个成员所需的内存量
B ) 结构中最后一个成员所需的内存量
C ) 结构体成员中占内存量最大者所需的容量
D ) 结构体中各成员所需内存量的总和
[18]若有以下说明和语句,则对结构变量std 中成员id 的引用方式不正确的是______
struct work {int id; int name; }std,*p; p=&std;
A) std.id B) *p.id C) (*p).id D) p->id
[19]若要使指针变量p 指向一个动态开辟的字符型存储单元,则①中应选择填入的是______
int *p;
p=①malloc(sizeof(char));
A) char B) char* C) (*char) D) (char*) [20]下面对typedef 的叙述中不正确的是______
A) 用typedef 不能定义变量名 B) 用typedef 可以定义新的数据类型
C) 用typedef 只是将已存在的类型用一个新的标识符来代表 D) 使用typedef 有利于程序的通用和移值 二、填空题
[1]C 源程序的基本单位是
[2]在C 语言中,输入操作可以由库函数 完成,输出操作可以由库函数 完成。
[3]若x 是int 型变量,且x=6,则表达式x%2+(x+1)%2的值为 。
[4]设x,y,z 均为int 型变量 ,请用C 语言的表达式描述以下命题。 ⑴ x 或y 中有一个小于z _______ ⑵ x,y 和z 中只有两个为负数 _______ ⑶ y 是奇数 _______
[5]设a,b,c 均是int 型变量,则执行以下for 循环后,c 的值为____。 for(a=1,b=5;a<=b;a++) c=a+b;
[6]若用以下形式表示for 循环语句:for(表达式1;表达式2;表达式3) 循环体语句, 则执行语句for(i=0;i<3;i++) printf(“*”);时,表达式1执行___次,表达式3执行_____次。 三、程序分析题(每小题6分,共12分) [1] 阅读程序,写出运行结果.
#include ”stdio.h ” main() {int i,j;
for(i=4; i>=1; i--)
{ for (j=1;j<=i;j+ +) putchar(…#?); for (j=1;j<=4-i;j+ +) putchar(…*?); putchar(…\n?);} }
[2]阅读程序,写出运行结果。
void f1(int x,int y,int z)