[江南大学]2018年上半年第二阶段测试题 计算机语言(C)第2阶段练参考
江南大学现代远程教育 第二阶段练习题考试科目:《计算机语言(C)》第7章至第9章(总分100分)
学习中心(教学点) 批次: 层次:
专业: 学号: 身份证号:
姓名: 得分: 一、选择题(每题2分,共30分)
1.变量的有效范围与其定义位置有关,( ),其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
2.C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是( )。
A.将串STR1复制到串STR2中后再连接至串STR3之后B.将串STR1连接至STR2之后再复制至串STR3之后C.将串STR2复制到串STR1串后再将串STR3连接到串STR1 之后D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串 3. 以下正确的说法是( )。
A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准
4.以下函数调用中有( )个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)A.4个 B.3个 C.8个 D.5个
5.对于C语言的函数,下列叙述中正确的是( )。A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套6.编译预处理包括( )。
A.文件包含、宏定义和条件编译
B.构造工程文件C.语句注释 D.编辑源程序
7.以下叙述中不正确的是( )。
A.一个变量的作用域完全取决于变量说明语句的位置 B.外部变量可以在函数以外的任何位置定义C.内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数下一次调用 D.用static说明—个外部变量是为了限制其它编译单位的引用8.以下有关宏替换的叙述不正确的是( )。
A.宏替换不占用运行时间 B.宏名无类型C.宏替换只是字符替换 D.宏名必须用大写字母表示
9.假设有宏定义:
#define NUM15#define DNUMNUM+NUM则表达式DNUM/2+NUM*2的值为( )。
A.45 B.67 C.52 D.90
10.若有宏定义与变量说明如下:
#defineX5#defineYX+1#defineZY*X/2int a; a=y;则执行以下printf语句后输出的结果是( )。Printf("%d %d\n",Z,--a);A.75 B.126 C.125 D.7611.若有变量说明:char s,s1;执行语句:s="student";s1=s;正确的叙述是:( )。
A.二个语句都不正确B.s所指向的字符串和s1的值都是"student"C.第一个语句正确,而第二个语句不正确D.第二个语句正确,而第一个语句不正确
12.C程序中若函数类型未加显式说明,则函数的隐含类型为( )类型。
A. void B. int C. char D. double 13.以下程序的运行结果是( )。main(){ int a=2,i; for(i=0;i<3;i++) printf("%d",f(a));}f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c);}A.777 B.7□7□7 C.789 D.7□8□9
14.执行以下程序: main(){ char str;scanf(“%s”,str);printf(“%s\n”,str); } 若输入数据为:abcd1234efgh 则程序的输出结果是( )。A. abcd B. abcd1234efghC. abcd1234 D. abcd1234efgh15.对于extern型变量和static型变量的初始化( )。A.在编译时进行 B.在程序开始运行时进行C.在程序运行过程中使用到它们时进行 D.不能确定在何时进行二、填空题(每空3分,共45分)
1. 有说明语句int a包括了 个数组元素。
2.在C语言中,二维数组元素在内存中的存放顺序是 。
3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。
4.一个函数包含 和 两大部分, 在函数名后面,语句括号之前说明的变量名称为 ;以"extern"开头进行的变量说明称为 。
5.下面程序实现用折半查找法找出所给的字符c是否在已知字符串str中。
#include “stdio.h”main (){ int bot=0,top=9,mid,flag=0; char str=”achklnprtx”,c; c=getchar(); while( (top-bot)>=0 ){ _ ;if(b==c){flag=1; ;}else if(b<c) _ ;else _ ;}if(_ ) printf(“%c字符在已知字符串中\n”,c);else printf(“%c字符不在已知字符串中\n”,c);}
6. 下面程序的功能是求1至1000之间满足“除3余0,且有一位是5”的数,例如15,45,51…且一行输出5个数,变量a,b,c分别存储百位,十位和个位。#include<stdio.h>main(){int I=1,j=0,a,b,c; do{ a= ; b=I%100/10 ; c= I%10 ; if( ) {printf(“%4d”,I); j=j+1; if(j%5==0 )printf(“\n”); I++;}while(I<1000);}
7.执行以下程序后,输出的是 (所有编译系统传递函数参数的顺序为自右向左)。[程序]func(int a,int b) { return a+b; }main(){ int x=6,y=7,z;z=func(func(x++,y++), func(--x, --y));printf("%d",z); }三、编程题(25分)
1.以下程序实现从键盘上输入年、月、日,计算该日是该年的第几天。(15分)
2.画出排序算法的N-S结构流程图。(10分)江南大学作业无忧答案网整理
页:
[1]