收藏 分销(赏)

《C语言程序设计》模拟试卷9套.doc

上传人:知****运 文档编号:11398076 上传时间:2025-07-21 格式:DOC 页数:137 大小:591.56KB 下载积分:22 金币
下载 相关 举报
《C语言程序设计》模拟试卷9套.doc_第1页
第1页 / 共137页
《C语言程序设计》模拟试卷9套.doc_第2页
第2页 / 共137页


点击查看更多>>
资源描述
试卷编号:8229 所属语言:C语言 试卷方案:C语言期末模拟 试卷总分:100分 共有题型:5种 一、判断 共10题 (共计10分) 第1题 (1.0分) 题号:1265 假设所有变量均为整型,则表达式(a=2,b=3,b++,a+b)的值是5. 答案:N 第2题 (1.0分) 题号:1253 若有说明int c;则while(c=getchar());是正确的C语句. 答案:Y 第3题 (1.0分) 题号:25 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}; 答案:N 第4题 (1.0分) 题号:1279 C语言的double类型数据一般占4个字节. 答案:N 第5题 (1.0分) 题号:1252 break语句可用于循环体内,它将退出该重循环. 答案:Y 第6题 (1.0分) 题号:30 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。 答案:Y 第7题 (1.0分) 题号:1267 程序的基本结构中选择结构又叫分支结构,有单分支与多分支两种. 答案:Y 第8题 (1.0分) 题号:1472 C语言中的标识符以字母或下划线开头,可跟任何字符. 答案:N 第9题 (1.0分) 题号:1246 在if语句中,else前一个语句可不加";". 答案:N 第10题 (1.0分) 题号:1245 在标准C中,"="是判断两个数是否相等. 答案:N 二、单项选择 共30题 (共计30分) 第1题 (1.0分) 题号:172 在C语言程序中()。 A:函数的定义可以嵌套,但函数的调用不可以嵌套 B:函数的定义不可以嵌套,但函数的调用可以嵌套 C:函数的定义和函数调用均可以嵌套 D:函数的定义和函数调用不可以嵌套 答案:B 第2题 (1.0分) 题号:3067 以下选项中合法的实型常数是(). A:5E2.0 B:E-3 C:.2E0 D:1.3E 答案:C 第3题 (1.0分) 题号:606 已定义ch为字符型变量,以下赋值语句中错误的是()。 A:ch='\'; B:ch=62+3; C:ch=NULL; D:ch='\xaa'; 答案:A 第4题 (1.0分) 题号:3012 *以下程序段的输出结果为(). char c[]="abc"; int i=0; do ;while(c[i++]!='\0');printf("%d",i-1); A:abc B:ab C:2 D:3 答案:D 第5题 (1.0分) 题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第6题 (1.0分) 题号:547 int (*p)[6]; 它的含义为()。 A:具有6个元素的一维数组 B:定义了一个指向具有6个元素的一维数组的指针变量 C:指向整型指针变量 D:指向6个整数中的一个的地址 答案:B 第7题 (1.0分) 题号:3181 若有定义:int *p[3];,则以下叙述中正确的是(). A:定义了一个基类型为int的指针变量p,该变量具有三个指针 B:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C:定义了一个名为*p的整型数组,该数组含有三个int类型元素 D:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 答案:B 第8题 (1.0分) 题号:523 函数的形式参数隐含的存储类型说明是()。 A:extern B:static C:register D:auto 答案:D 第9题 (1.0分) 题号:95 下列变量说明语句中,正确的是()。 A:char:a b c; B:char a;b;c; C:int x;z; D:int x,z; 答案:D 第10题 (1.0分) 题号:168 若输入ab,程序运行结果为()。 main() { static char a[2]; scanf("%s",a); printf("%c,%c",a[1],a[2]); } A:a,b B:a, C:b, D:程序出错 答案:C 第11题 (1.0分) 题号:2821 经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为(). char x=65; float y=7.3; int a=100; double b=4.5; A:2,2,2,4 B:1,2,4,4 C:1,4,4,8 D:2,4,4,8 答案:C 第12题 (1.0分) 题号:611 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。 A:是无限循环 B:循环次数不定 C:4次 D:3次 答案:C 第13题 (1.0分) 题号:561 以下叙述中正确的是 ()。 A:C程序中注释部分可以出现在程序中任意合适的地方 B:花括号“{“和”}”只能作为函数体的定界符 C:构成C程序的基本单位是函数,所有函数名都可以由用户命名 D:分号是C语句之间的分隔符,不是语句的一部分 答案:A 第14题 (1.0分) 题号:429 假定所有变量均已正确定义,下列程序段运行后x的值是()。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3; A:14 B:4 C:15 D:3 答案:B 第15题 (1.0分) 题号:2782 以下数据中,不正确的数值或字符常量是(). A:8.9e1.2 B:10 C:0xff00 D:82.5 答案:A 第16题 (1.0分) 题号:2374 以下说法正确的是 A:C语言程序总是从第一个的函数开始执行 B:在C语言程序中,要调用函数必须在main()函数中定义 C:C语言程序总是从main()函数开始执行 D:C语言程序中的main()函数必须放在程序的开始部分 答案:C 第17题 (1.0分) 题号:3159 在位运算中,操作数每左移一位,其结果相当于(). A:操作数乘以2 B:操作数除以2 C:操作数除以4 D:操作数乘以4 答案:A 第18题 (1.0分) 题号:599 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A:7 B:8 C:6 D:2 答案:B 第19题 (1.0分) 题号:3052 以下叙述正确的是(). A:在C程序中,main函数必须位于程序的最前面 B:C程序的每行中只能写一条语句 C:C语言本身没有输入输出语句 D:在对一个C程序进行编译的过程中,可发现注释中的拼写错误 答案:C 第20题 (1.0分) 题号:3168 若x=2,y=3则x&y的结果是().? A:0 B:2 C:3 D:5 答案:B 第21题 (1.0分) 题号:3091 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(). A:是无限循环 B:循环次数不定 C:4次 D:3次 答案:C 第22题 (1.0分) 题号:160 C语言的if语句嵌套时,if与else的配对关系是()。 A:每个else总是与它上面的最近的if配对 B:每个else总是与最外层的if配对 C:每个else与if的配对是任意的 D:每个else总是与它上面的if配对 答案:A 第23题 (1.0分) 题号:379 以下不正确的叙述是()。 A:在C程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量 C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变 D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 答案:D 第24题 (1.0分) 题号:671 C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。 A:地址传递 B:单向值传递 C:由实参传给形参,再由形参传回给实参 D:由用户指定的传递方式 答案:B 第25题 (1.0分) 题号:3073 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是(). A:a>=10 or a<=0 B:a>=0|a<=10 C:a>=10&&a<=0 D:a>=10‖a<=0 答案:D 第26题 (1.0分) 题号:3100 下列运算符中优先级最高的是(). A:< B:+ C:&& D:!= 答案:B 第27题 (1.0分) 题号:130 以下程序段的执行结果是()。 double x;x=218.82631; printf("%-6.2e\n",x); A:输出格式描述符的域宽不够,不能输出 B:输出为21.38e+01 C:输出为2.2e+02 D:输出为-2.14e2 答案:C 第28题 (1.0分) 题号:480 以下程序的输出结果是()。 main() { char s[]="123",*p; p=s; printf("%c%c%c\n",*p++,*p++,*p++); } A:123 B:321 C:213 D:312 答案:B 第29题 (1.0分) 题号:376 在C语言中,能代表逻辑值“真”的是()。 A:True B:大于0的数 C:非0整数 D:非0的数 答案:D 第30题 (1.0分) 题号:2926 在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式(). A:只能用逻辑表达式 B:只能用关系表达式 C:只能用逻辑表达式或关系表达式 D:可用任意表达式 答案:D 三、程序填空 共2题 (共计24分) 第1题 (12.0分) 题号:3 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下面的程序是求1!+3!+5!+……+n!的和,程序中有4个 空,填空使程序完整。 -------------------------------------------------------*/ main() { long int f,s; int i,j,n; /***********SPACE***********/ 【?】 scanf("%d",&n); /***********SPACE***********/ for(i=1;i<=n; 【?】) { f=1; /***********SPACE***********/ for(j=1; 【?】;j++) /***********SPACE***********/ 【?】 s=s+f; } printf("n=%d,s=%ld\n",n,s); } 答案: =======(答案1)======= s=0; =======(答案2)======= i+=2 =========或========= i=i+2 =======(答案3)======= j<=i =========或========= i>=j =======(答案4)======= f= f * j ; 第2题 (12.0分) 题号:414 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ long power(int n) {long f; if(n>1) /***********SPACE***********/ f=【?】; else f=1; return(f); } main() {int n; long y; printf("input a inteager number:\n"); /***********SPACE***********/ scanf("%d",【?】); y=power(n); /***********SPACE***********/ printf("%d!=%ld\n",n,【?】); getch(); } 答案: =======(答案1)======= power(n-1)*n =========或========= power( n - 1 ) * n =======(答案2)======= &n =======(答案3)======= y 四、程序改错 共2题 (共计22分) 第1题 (11.0分) 题号:417 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:读取7个数(1-50)的整数值,每读取一个值, 程序打印出该值个数的*。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程 序的结构。 ------------------------------------------------------*/ #include "stdio.h" main() {int i,a,n=1; /**********FOUND**********/ while(n<7) { do { scanf("%d",&a); } /**********FOUND**********/ while(a<1&&a>50); /**********FOUND**********/ for(i=0;i<=a;i++) printf("*"); printf("\n"); n++;} getch(); } 答案: =======(答案1)======= while(n<=7) =========或========= while(n<8) =======(答案2)======= while(a<1||a>50); =========或========= while(a>50||a<1); =======(答案3)======= for(i=1;i<=a;i++) 第2题 (11.0分) 题号:19 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 题目:函数fun的功能是:计算正整数num的各位上的数字之积。 例如,输入252,则输出应该是20。 请改正程序中的错误,使它能得出正确的结果。 -------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ long fun (long num) { /**********FOUND**********/ long k; do { k*=num%10; /**********FOUND**********/ num\=10; }while (num); return k; } main() { long n; printf("\nPlease enter a number:"); /**********FOUND**********/ scanf("%ld", n); /**********FOUND**********/ printf("\n%ld\n",fun(long n)); } 答案: =======(答案1)======= long k=1; =======(答案2)======= num/=10; =========或========= num=num/10; =======(答案3)======= scanf("%ld",&n); =======(答案4)======= printf("\n%ld\n",fun(n)); 五、程序设计 共1题 (共计14分) 第1题 (14.0分) 题号:22 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出。 请编写fun函数。(用for循环) -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其 它函数中的任何内容,仅在函数fun的花括号中填 入所编写的若干语句。 ------------------------------------------------*/ #include "stdio.h" int fun(int x[],int n) { /**********Program**********/ /********** End **********/ } main() { int a[10],i,min; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); min=fun(a,10); printf("%d\n",min); yzj(); } yzj() { FILE *IN,*OUT; int iIN[10],i; int iOUT,iCOUNT; IN=fopen("4.in","r"); if(IN==NULL) {printf("Please Verify The Currernt Dir..It May Be Changed"); } OUT=fopen("4.out","w"); if(OUT==NULL) {printf("Please Verify The Current Dir.. It May Be Changed"); } for(i=0;i<10;i++) { for(iCOUNT=0;iCOUNT<10;iCOUNT++) fscanf(IN,"%d",&iIN[iCOUNT]); iOUT=fun(iIN,10); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案:---------------------- int min,i; min=x[0]; for(i=1;i<n;i++) {if(x[i]<min) min=x[i];} return min; ---------------------- 试卷编号:8230 所属语言:C语言 试卷方案:C语言期末模拟 试卷总分:100分 共有题型:5种 一、判断 共10题 (共计10分) 第1题 (1.0分) 题号:1488 函数即可以嵌套定义,又可以嵌套调用. 答案:N 第2题 (1.0分) 题号:1256 unsigned 和void 在C中都是保留字. 答案:Y 第3题 (1.0分) 题号:1280 表达式 ++i表示对变量i自加1. 答案:Y 第4题 (1.0分) 题号:1282 C语言源程序的基本结构单位是main函数. 答案:N 第5题 (1.0分) 题号:1276 字符常量的长度肯定为1. 答案:Y 第6题 (1.0分) 题号:1469 char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样. 答案:Y 第7题 (1.0分) 题号:1249 若有int i=10,j=2; 则执行完i*=j+8;后i的值为28. 答案:N 第8题 (1.0分) 题号:33 int i,*p=&i;是正确的C说明。 答案:Y 第9题 (1.0分) 题号:1250 While循环语句的循环体至少执行一次. 答案:N 第10题 (1.0分) 题号:1510 有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0. 答案:Y 二、单项选择 共30题 (共计30分) 第1题 (1.0分) 题号:456 执行下面程序后,输出结果是()。 main() { a=45,b=27,c=0; c=max(a,b); printf("%d\n",c); } int max(x,y) int x,y; { int z; if(x>y) z=x; else z=y; return(z); } A:45 B:27 C:18 D:72 答案:A 第2题 (1.0分) 题号:437 下列数组说明中,正确的是()。 A:int array[][4]; B:int array[][]; C:int array[][][5]; D:int array[3][]; 答案:A 第3题 (1.0分) 题号:2396 下面有关for循环的正确描述是 () A:for循环只能用于循环次数已经确定的情况 B:for循环是先执行循环体语句,后判断表达式 C:在for循环中,不能用break语句跳出循环体 D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案:D 第4题 (1.0分) 题号:2817 以下程序的输出结果是(). main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); } A:i=2,j=1,k=3 B:i=1,j=1,k=2 C:i=4,j=2,k=4 D:i=1,j=1,k=3 答案:D 第5题 (1.0分) 题号:2866 若有下列定义,则对a数组元素地址的正确引用是(). int a[5],*p=a; A:*(p+5) B:*p+2 C:*(a+2) D:*&a[5] 答案:C 第6题 (1.0分) 题号:711 下列选项中正确的语句组是()。 A:char s[8]; s={"Beijing"}; B:char *s; s={"Beijing"}; C:char s[8]; s="Beijing"; D:char *s; s="Beijing"; 答案:D 第7题 (1.0分) 题号:3191 若变量a,i已正确定义,且i已正确赋值,合法的语句是() A:a=int(i); B:a==1 C:++i; D:a=a++=5; 答案:C 第8题 (1.0分) 题号:490 以下字符中不是转义字符的是()。 A:\a' B:\b' C:\c' D:'\\' 答案:C 第9题 (1.0分) 题号:184 下列定义不正确的是()。 A:#define PI 3.141592 B:#define S345 C:int max(x,y); int x,y; { } D:static char c; 答案:C 第10题 (1.0分) 题号:3028 char h,*s=&h;可将字符H通过指针存入变量h中的语句是(). A:*s=H; B:*s='H'; C:s=H; D:s='H' 答案:B 第11题 (1.0分) 题号:690 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。 A:10101001 B:10101000 C:11111101 D:01010101 答案:D 第12题 (1.0分) 题号:2381 设以下变量均为int类型,表达式的值不为7的是() A:x=y=6,x+y,x+1 B:x=y=6,x+y,y+1 C:x=6,x+1,y=6,x+y D:y=6,y+1,x=y,x+1 答案:C 第13题 (1.0分) 题号:3124 若有说明 int a[3][4];则对a数组元素的正确引用是(). A:a[2][4] B:a[1,3] C:a[1+1][0] D:a(2)(1) 答案:C 第14题 (1.0分) 题号:679 在C语言中,形参的缺省存储类是()。 A:auto B:register C:static D:extern 答案:A 第15题 (1.0分) 题号:1343 C语言源程序的基本单位是(). A:过程 B:函数 C:子程序 D:标识符 答案:B 第16题 (1.0分) 题号:3023 C语言程序中必须有的函数是(). A:#include "stdio.h" B:main C:printf D:scanf 答案:B 第17题 (1.0分) 题号:3228 有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 () A:1.4 B:1 C:2.0 D:2 答案:B 第18题 (1.0分) 题号:640 以下对二维数组a的正确说明是()。 A:int a[3][] B:float a(3,4) C:double a[1][4] D:float a(3)(4) 答案:C 第19题 (1.0分) 题号:2884 以下标识符中,不能作为合法的C用户定义标识符的是(). A:answer B:to C:signed D:_if 答案:C 第20题 (1.0分) 题号:652 在C语言中,引用数组元素时,其数组下标的数据类型允许是()。 A:整型常量 B:整型表达式 C:整型常量或整型表达式 D:任何类型的表达式 答案:C 第21题 (1.0分) 题号:381 以下标识符中,不能作为合法的C用户定义标识符的是()。 A:answer B:to C:signed D:_if 答案:C 第22题 (1.0分) 题号:2898 已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)|| year%400==0的值为"真"的数据是(). A:1990 B:1992 C:1996 D:2000 答案:A 第23题 (1.0分) 题号:177 以下描述中,正确的是()。 A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于C源文件的开始 C:C源程序中凡是行首以#标识的控制行都是预处理指令 D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备 答案:C 第24题 (1.0分) 题号:156 执行下列语句后的输出为()。 int j=-1; if(j<=1) printf("****\n"); else printf("%%%%\n"); A:**** B:%%%% C:%%%%c D:有错,执行不正确 答案:A 第25题 (1.0分) 题号:2850 以下函数调用语句中实参的个数是(). exce((v1,v2),(v3,v4,v5),v6); A:3 B:4 C:5 D:6 答案:A 第26题 (1.0分) 题号:506 以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j<i;j++) putchar('#'); A:无 B:###### C:# D:### 答案:B 第27题 (1.0分) 题号:2830 下列程序的输出结果是(). main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 第28题 (1.0分) 题号:573 C语言中运算对象必须是整型的运算符是()。 A:%= B:/ C:= D:〈= 答案:A 第29题 (1.0分) 题号:647 以下能对二维数组a进行正确初始化的语句是()。 A:int a[2][]={{1,0,1},{5,2,3}}; B:int a[][3]={{1,2,3},{4,5,6}}; C:int a[2][4]={{1,2,3},{4,5},{6}}; D:int a[][3]={{1,0,1}{},{1,1}}; 答案:B 第30题 (1.0分) 题号:3135 以下数组定义中不正确的是(). A:int a[2][3]; B:int b[][3]={0,1,2,3}; C:int c[100][100]={0}; D:int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 答案:D 三、程序填空 共2题 (共计24分) 第1题 (12.0分) 题号:417 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:利用全局变量计算长方体的体积及三个面的面积。 -------------------------------------------------------*/ int s1,s2,s3; int vs(int a,int b,int c) {int v; /***********SPACE***********/ v=【?】; s1=a*b; /***********SPACE***********/ s2=【?】; s3=a*c; return v; } main() {int v,l,w,h; clrscr(); printf("\ninput length,width and height: "); /***********SPACE***********/ scanf("%d%d%d",【?】,&w,&h); /***********SPACE***********/ v=【?】; printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3); getch(); } 答案: =======(答案1)======= a*b*c =========或========= a * b * c =
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服