1、全国自考(高级语言程序设计)模拟试卷 12 及答案与解析一、单项选择题1 若有定义:f1oat a=273;int i=0,k=3 ;则不符合 C 语言规定的赋值语句是( )(A)i=!a(B) i=(a+k)int fun( int,int) ;main() int m=4,n =2,k;k= fun( m,n) ;printf( “ dn“,k) ;fun (int m,int n)retum (m*m*m -n*n*n);(A)64(B) 56(C) 8(D)06 设有以下语句:struct exint x;double y;char *z apple ;则下面叙述中不正确的是( )(A
2、)struct 是结构体类型的关键字(B) apple 是结构体类型名(C) x,y,z 都是结构体成员名(D)struct ex 是结构体类型名7 设 static int x;执行表达式(x+1=2)&(x=一 1)&(x+=1)后,x 的值为( )(A)0(B) 1(C) -1(D)28 若 x 是 int 型变量,且有下面的程序段:for(x=4;x=20) ;x 最终为_。23 int x=1, y= -1,则语句:printf(“d“,(- -x&曲+));的输出结果是_。24 若有定义语句:f1oat k105 ;按内存存放的规律,k 数组的第 15 个元素是_。25 定义 10
3、ng int a10,则 a 数组元素的下标上限是_,下限是_。三、程序分析题26 #include func ( int a,int b)int c; c =a+b;retum c; main() int x =6,r;r = func( x,x +=2) ;printf( “ dn“,r) ;27 void f(int x,int y,int * px,int * py)*px =x-y;main() int a =10,b =20;printf( “d, dn“,a,b) ;28 s( int a)static int b =10 ;retum(+b) ;else retum( +a)
4、;void main () int i;printf( “n“) ;29 #include char * scmp(char * s1,char * s2) if( strcmp ( s1,s2) main() int a10,b10 ,i;for(i =0;_;i+) /*第一空*/scanf(“d“,&ai);for(i=1;_;i+) /*第二空*/bi =ai -ai-l;for(i=1;i#include/*第一空*/void main()FILE *fp;char c;if( fp=fopen“e:ctxt“,“W“)=NULL) printf(“can not open file
5、!n“),exit(0);while(_)!=n/*第二空*/_;/*第三空*/fc10se(fp);五、程序设计题33 编程序输入 30 个学生的学号、姓名、3 门课程的成绩,存入一个结构型的数组。统计并输出每个学生的学号、姓名、总分。34 由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志。全国自考(高级语言程序设计)模拟试卷 12 答案与解析一、单项选择题1 【正确答案】 D【试题解析】 取模运算符“”,二元运算符,具有左结合性,参与运算的必须为整量,D 选项中 a 的类型是 f1oat,所以 D 不符合规定。2 【正确答案】 A【试题解析】
6、for 循环式先判断表达式,后执行循环语句。3 【正确答案】 C【试题解析】 scanf 函数中的输入项必须是指针,只有 C 符合要求。4 【正确答案】 D【试题解析】 逗号运算符的作用是将若干表达式连接起来,它的优先级别在所有运算符中是最低的,结合方向是“自左向右”。A 和 C 项的结果是一样的,可展开为:x=x*(x+1)=20;B 项中先执行 x +,逗号执行前 x 的值变为 5,逗号后的值就是整个表达式的值为 20;D 选项逗号前并未给 x 赋值,所以表达式的值就是x+=12 的值,即为 1605 【正确答案】 B【试题解析】 如果没有指明函数数值类型,则默认函数返回值的类型为 int
7、 类型。6 【正确答案】 B【试题解析】 struct ex 是结构体类型名,app1e 是结构体变量名。7 【正确答案】 A【试题解析】 static 型变量未赋值时,系统赋值为 0;&左端第一个表达式的值为假时,结果肯定为假,此时第二个表达式将不再运行。8 【正确答案】 C【试题解析】 这种条件表达式的一般形式为:表达式 17 表达式 2:表达式 3,条件运算符的执行顺序是先求解表达式 1,若非零则求解表达式 2,否则求解表达式3,所求表达式即为整个条件表达式的值。9 【正确答案】 C【试题解析】 题中通过二维数组的行列下标来定位元素的位置,从而实现元素的引用。10 【正确答案】 B【试题
8、解析】 题中,k 与 m 的地址是不一样的, a=p1=&m,先运行关系运算符=, p1 不等于&m ,所以为假,为 0,所以 a=0。11 【正确答案】 B【试题解析】 在 C 语言中,函数间参数的传递方式是实参向形参的单向值传递,而单向值传递是指只能从主调函数向被调函数传递数据。12 【正确答案】 A【试题解析】 *(a+k)指向的是第 k+1 个元素,因为数组下标是从 0 开始的,所有s 的值为 6,7,1,4 四个值相加所得。13 【正确答案】 C【试题解析】 字符串“china”存储在数组中时,其后的0也是占内存的,所以是6 个字节,但其长度不包括0,所以其长度为 5。14 【正确答
9、案】 D【试题解析】 “wb+”对二进制文件进行读或写操作。如果该文件不存在,系统自动建立新文件;如果该文件存在,其内容被清除。15 【正确答案】 C【试题解析】 文件指针是指向与文件参数有关的结构体类型的指针变量,系统在头文件“stdio h” 中已经定义。二、填空题16 【正确答案】 流程图(框图) 【试题解析】 对于复杂算法,用自然语言很难清楚地描述算法步骤的流向和结构。我们通常使用流程图(又称为框图)来描述算法。17 【正确答案】 顺序结构,循环结构【试题解析】 结构化程序的三种基本机构为选择结构、顺序结构和循环结构。18 【正确答案】 &)&x0【试题解析】 一维数组的首地址也是第一
10、个元素的地址。19 【正确答案】 1234b,4_b3_【试题解析】 标识符只可以是下画线或字母开头,不能是数字开头。20 【正确答案】 1 【试题解析】 字符型变量占用字节数为 1。21 【正确答案】 6e ,14 【试题解析】 x 输出的格式为十六进制整数,d 输出的是十进制整数。22 【正确答案】 7 【试题解析】 先执行循环体 do 语句,然后判断,不符合则退出循环。23 【正确答案】 0【试题解析】 =- -x 为 0,对于与运算,一旦一个为 0,则表达式为 0,所以输出 0。24 【正确答案】 K24 【试题解析】 不分行给二维数组赋初值时,是先按行后按列赋值的,即先给一行赋完值,
11、再给下行赋值,还 要注意的是,不管是行还是列,都是从下标 0 开始的。25 【正确答案】 9,0【试题解析】 一维数组下标的合法值范围是 0(长度-1)。三、程序分析题26 【正确答案】 16(注意:x+=2 后,x 的值改变了)27 【正确答案】 200,-1028 【正确答案】 1 11 3 1329 【正确答案】 ABBA四、程序填充题30 【正确答案】 i=1&month#include main( ) FILE * fp;char ch, :fname 10 ;printf( “p1ease input the file namen“) ;gets ( fnarne) ;if (fp = fopcn( fname,“w ) = = NULL) p1nintf( “cannot open“) ;exit(0),e1se printf( “enter the content: n“),while (ch = getchar( ) ! = #)f)utc ( ch,fp) ;fc10se ( fp) ;
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1