高三C语言二月份月考试题
- 格式:doc
- 大小:59.00 KB
- 文档页数:8
c语言二级考试试题与答案doc一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中正确的整型常量?A. 0x12B. 0b1010C. 0LD. 0.5答案:A3. C语言中,以下哪个函数用于计算两个数的最大值?A. max(int a, int b)B. min(int a, int b)C. abs(int a, int b)D. sqrt(int a, int b)答案:A4. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. ^5. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A6. C语言中,以下哪个关键字用于声明一个函数?A. returnB. voidC. intD. function答案:C7. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. $variableD. variable!答案:B8. 下列哪个选项是C语言中正确的浮点型常量?A. 1.23e-5B. 1.23e5C. 1.23ED. .23答案:A9. C语言中,以下哪个关键字用于声明一个指针?B. pointerC. ptrD. *答案:A10. 在C语言中,以下哪个选项是合法的数组声明?A. int array[10] = {1, 2, 3};B. int array[] = {1, 2, 3};C. int array[10] = {1, 2};D. int array = {1, 2, 3};答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个枚举类型。
⾼三计算机专业第⼆次⽉考试试卷2011届对⼝升学第⼆次⽉考《C语⾔》试卷姓名:班级:⼀、单选题(本⼤题共10⼩题,每⼩题3分,共30分。
在每⼩题给出的四个选项中,只有⼀项是符合题⽬要求的)1、若数组a有m列,则a[i][j]之前的数组元素个数为( )A、(i-1)*(j-1)B、i*m+j+1C、i*m+j-1D、i*m+j2、已知字母a的ASCI的⼗进制代码为97,则执⾏下列语句后输出为( ) char a=?a?;a--;printf(“%d,%c\n”,a+?2?-?0?,a+?3?-…0?);A、a, cB、100,cC、98,cD、格式描述和输出项不匹配,输出⽆定值3、在C语⾔中,当函数调⽤时( )A、实参和形参各占⼀个独⽴的存储单元B、形参和实参共⽤存储单元C、可以由⽤户指定形参和实参是否共⽤存储单元D、由系统⾃动确定形参和实参是否共⽤存储单元4、执⾏下⾯语句后的输出结果为( )int a=-1;if(a<=0)printf(“****\n”);a=2;elseprintf(“%%%%\n”);A、 ****B、 %%%%C、%%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++;case 3:a++; b++;}printf(“a=%d, b=%d”,a,b);}A、 a=3, b=2B、 a=2, b=3C、 a=3, b=3D、 a=2, b=26、以下程序段( )int x=1,y=4;printf(x>y? ”x=%d”:”y=%d”,x,y);A、输出控制格式错误B、输出:x=1C、输出: y=4D、输出:y=17、若下述程序运⾏时输⼊的数据是“3.6,2.4”,则输⼊结果是( ) #include#includemain( ){float x,y,z;scanf(“%f,%f”,&x,&y);{if(fabs(z)>1.0){ x=y;y=z;z=x/y;}elsebreak;}printf(“%f”,y);}A、1.500000B、1.600000C、2.000000D、2.4000008、下列程序段不能实现求阶乘8!(结果存放在p中)的是( )A、p=1;B、p=2;for(x=1;x<9;x++) for(x=8;x>3;x--)p=p*x; p=p*x;B、p=1, x=1; D、p=1,x=8;while(x<9) dop=p*x++; { p=p*x--;}while(x>1)9、执⾏如下程序段,当输⼊为happy! 时,输出的结果为( ) char str[14]={“I am”};strcat(str,”sad!”);scanf(“%s”,str);printf(“%s”,str);A、 I am sad!B、happy!C、I am happy!D、happy ad!10、下述程序的输出结果是( )long fun(int n){long s;if(n==1||n==2)s=2;s=n+fun(n-1);return s;}void main( ){printf(“\n%ld”,fun(4)); }A、 7B、8C、9D、10⼆、多选题(本⼤题共2⼩题,每⼩题5分,共10分。
C 语言月考试题总分:150分一、程序阅读题:(共48分,8分/题)1、Hsb208写出下列程序的结果:main(){int a[4]={5,16,7,14};int i;for(i=0;i<4;i++)a[i]=a[i]+i;for(i=3;i>=0;i--)printf("%d ",a[i]);}2、Hsb209写出下列程序的结果:main(){int k;int a[3][3]={1,2,3,4,5,6,7,8,9};for(k=0;k<3;k++)printf("%d ",a[k][2-k]);}3、Hsb210写出下列程序的结果:main( ){int i,m=0,n=0;int max,min;int a[9]={1,3,5,7,9,-2,-4,-6,-8};max=0;min=0;for(i=0;i<9;i++){if(a[i]>0){m++;if(max<a[i])max=a[i];}else{if(min<a[i])min=a[i];n++;}}printf("m=%d,n=%d\n,max=%d,min=%d\n",m,n,max,min);}4、hsb211写出下列程序的结果:main( ){int i;int a[4][4]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; for(i=0;i<4;i++)printf(“%3d”,a[i][i]);printf(“\n”);for(i=0;i<4;i++)printf(“%3d”,a[i][3-i]);printf(“\n”);}5、hsb212写出下列程序的结果:main(){int i,j;for(i=1;i<=9;i++){printf("\n");for(j=1;j<=i;j++)printf("%d*%d=%d ",i,j,i*j);}}6、hsb213写出下列程序的结果:int gcd(int,int);main(){int a,b,re;printf("\nplease enter 2 int:\n");scanf("%d%d",&a,&b);re=gcd(a,b);printf("\n%d & %d is:%d\n",a,b,re);}int gcd(u,v)int u,v;{int p;while(v!=0){p=u%v;u=v;v=p;}return(u);}二、程序填空题(共48分,4分/空)1、hsb214下列程序是将十进正整数转换成2至16进制数。
届高三计算机应用专业二次月考届高三计算机应用专业二次月考编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(届高三计算机应用专业二次月考)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为届高三计算机应用专业二次月考的全部内容。
1 / 14计算机专业高三第二次月考试卷(只交7-14页,注意次序)班级学号姓名一、单选题(3*20=60分)1.有关Windows控制面板中“显示器"的“外观”选项卡,( )是正确的。
A. 只能改变桌面的颜色B. 只能改变桌面和窗口边框的颜色C. 能改变许多屏幕元素的颜色D. 只能改变桌面、窗口和对话框颜色2.关于Windows的菜单命令,若某个命令后跟有“…”,则表示______.A. 该命令后将有一个对话框出现B. 该命令现在处于设定状态C. 该命令处于运行中D. 该命令后将有下一级联的菜单出现3.24×24汉字点阵字库中,表示一汉字字形需要_______字节。
A. 24B. 48 C。
72D。
324.在Word中建立的文档文件,不能用Windows中的记事本打开,这是因为______.A。
文件是以.DOC为扩展名B。
文件中含有汉字C. 文件中含有特殊控制符D。
文件中的西文有“全角”和“半角”之分5.在Word编辑过程中,使用______键盘命令可将插入点直接移到文章开头。
2 / 14A。
<Shift>+〈上HOME〉B。
<Ctrl>+<NOME〉 C. <Alt>+<End〉 D. 〈HOME>6.在Excel的单元格内输入日期时,年、月、日分隔符可以是_______(不包括引号)。
c语言二级试卷及答案一、选择题(每题2分,共20分)1. C语言中,哪个关键字用于定义整型变量?A. floatB. intC. charD. double2. 下面哪个选项是C语言中的逻辑运算符?A. `%`B. `++`C. `&&`D. `%=`3. 在C语言中,若要定义一个一维数组,下面哪个选项是正确的?A. int a[5];B. int a(5);C. int a{5};D. int a[5,5];4. 下面哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()5. 在C语言中,哪个函数用于输出字符串?A. printf()B. putchar()C. puts()D. scanf()6. 下面哪个选项是C语言中的结构体定义关键字?A. structB. classC. unionD. enum7. 在C语言中,下面哪个选项表示无穷大?A. INFB. INFINITYC. 1.0/0.0D. 0.0/0.08. 下面哪个选项不是C语言的跳转语句?A. breakB. continueC. returnD. switch9. 在C语言中,哪个函数用于动态释放内存?A. free()B. delete()C. release()D. malloc()10. 下面哪个选项表示C语言的动态数组?A. int a[5];B. int a;C. int a;D. int a[10][10];二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的关键字是______。
2. C语言的逻辑运算符包括______、______和______。
3. 在C语言中,数组的下标从______开始。
4. C语言中的动态内存分配函数包括______和______。
5. 在C语言中,用于输入字符串的函数是______。
三、判断题(每题2分,共20分)1. C语言中的数组元素在内存中是连续存储的。
高三C语言第二次月考试题姓名:_____________ 总分:_____________ 一、程序分析题(每小题5分,共30分)1.m ain() 程序功能为:_____________{int k=0,s=0,n; ___________________ for(n=0;n<=10;n++) ____________________{ if(n%2= =0) continue;s+=n; }printf(“s=%d\n”, s);}2. main(){ int x=4;do{printf(“%3d”,x - =2);}while(!(--x)); } 程序运行结果为:_________________3.main(){ int a,b,c,x; a=b=c=0; x=20;if(!a) x- -;else if (b);if ( c ) x=3; else x=4; } 程序运行后X为:_________4.运行以下程序时,从键盘输入4237<回车>,则运行结果为_____________#include <stdio.h>main(){ int c; while((c=getchar())!=‟\n‟)switch(c - …2‟){ case 0:case 1: putchar(c+4);case 2: putchar(c+4); break;case 3: putchar(c+3);case 4:putchar(c+2); break; }printf(“\n”); }5.下面程序运行结果为:_________________main(){ int x,i;for(i=1;i<=100; i++){ x=i;if(++x%2= =0)if(++x%3= =0)if(++x%5= =0) printf(“%d\t”,x); }6.下面程序运行结果为:_________________main(){ int i,j;for(i=3; i>=1; i- -){ for(j=1; j<=i; j++) putchar(…#‟);for(j=1;j<=3-i; j++) putchar(…*‟); putchar(…\n‟);} }二、程序填空(每空5分,共60分)1.以下函数用以求x的y次方。
C 语言一.填空题1. 在C 语言中(VC++ 6.0 环境下),一个char 型数据在内存中所占字节数为________,一个int型数据在内存中所占字节数为________,一个long 型数据在内存中所占字节数为________,一个float 型数据在内存中所占字节数为________,一个double 型数据在内存中所占字节数位________。
2. 设x,i,j,k 都是int 型变量,表达式x=(i=4,j=16,k=32)计算后,x 的值为 。
3. 设有以下变量定义,并已赋确定值char w; int x; float y; double z; 则表达式:w*x+z-y 所求得的数据类型为 。
4. C 语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 。
5. C 语言中不带任何修饰符的浮点数(例如3.5)都是按照 类型数据存储的。
6. 在C 语言的源程序中若出现常量“1L ”,则该常量的类型是_________。
7. C 语言中,一个int 型数据在内存中占4个字节,则unsigned int 型数据的取值范围为 。
8. 设有int x=11,则表达式(x++*1/3)的值是 。
9. 若有定义:char c=‘\010’;则变量c 中包含的字符个数为 。
10. 假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 。
11. 已知a,b,c 是一个十进制数的百位,十位,个位,则该数的表达式是 。
12. 若a 是int 变量,则执行表达式a=25/3%3后,a 的值是 。
13. C 语句可以分为 , , , 和 _____________等5种类型。
14. 若有定义:int b=17; float a=4.5,c=6.5;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值 。
15. 表达式“4/5*(float)3+(float)3*4/5”的值是 。
c语言二级考试题及答案一、单项选择题(本大题共40小题,每小题2分,共80分)1. 在C语言中,下列哪个选项是正确的整型常量?A. 0.5B. 0x12C. 0x12.0D. 0x12L答案:B2. C语言中,下列哪个选项是正确的字符串字面量?A. "hello"B. 'hello'C. "hello'"D. 'hello"答案:A3. 在C语言中,下列哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C4. 下列哪个选项是C语言中的关键字?A. intB. integerC. realD. double答案:A5. 在C语言中,下列哪个选项是正确的二进制常量表示?A. 0x1BB. 0b1101C. 0B1101D. 0x1101答案:B6. C语言中,下列哪个选项是正确的浮点型常量表示?A. 3.14B. 3.14e2C. 3.14E-2D. 3.14f答案:C7. 在C语言中,下列哪个选项是正确的字符常量表示?A. 'a'B. "a"C. 'ab'D. '0x61'答案:A8. 下列哪个选项是C语言中合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A9. 在C语言中,下列哪个选项是正确的函数声明?A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A10. 下列哪个选项是C语言中合法的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)();答案:A11. 在C语言中,下列哪个选项是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };答案:C12. 下列哪个选项是C语言中合法的枚举声明?A. enum {RED, GREEN, BLUE} color;B. enum color {RED, GREEN, BLUE};C. enum {RED, GREEN, BLUE};D. enum color {0, 1, 2};答案:B13. 在C语言中,下列哪个选项是正确的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI(3.14159)D. #define PI 3.14159;答案:A14. 下列哪个选项是C语言中合法的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A15. 在C语言中,下列哪个选项是正确的条件语句?A. if (a > b) { ... }B. if a > b { ... }C. if (a > b) then { ... }D. if a > b then { ... }答案:A16. 下列哪个选项是C语言中合法的循环语句?A. for (i = 0; i < n; i++) { ... }B. for i = 0; i < n; i++ { ... }C. for (i = 0; i < n; i++) { ... }D. for i = 0 to n { ... }答案:A17. 在C语言中,下列哪个选项是正确的switch语句?A. switch (a) { case 1: ...; case 2: ...; }B. switch (a) { case 1: ...; case 2: ...; default: ...; }C. switch (a) { case 1: ...; case 2: ...; break; }D. switch (a) { case 1: ...; case 2: ...; default: ...; }答案:D18. 下列哪个选项是C语言中合法的goto语句?A. goto label;B. goto 10;C. label: ...D. goto;答案:C19. 在C语言中,下列哪个选项是正确的函数调用?A. printf("%d", 10);B. scanf("%d", &a);C. printf("%d", a);D. scanf("%d", a);答案:B20. 下列哪个选项是C语言中合法的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, b) { return a + b; }C. int add(int a, int b) { return a + b; }D. int add(a, b) { return a + b; }答案:A21. 在C语言中,下列哪个选项是正确的递归函数调用?A. int factorial(int n) { return n * factorial(n - 1); }B. int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }C. int factorial(int n) { return n * factorial(n + 1); }D. int factorial(int n) { if (n == 1) return 1; else return n * factorial(n - 1); }答案:B22. 下列哪个选项是C语言中合法的数组初始化?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3, 4};C. int a[5] = {1, 2, 3};D. int a[5] = {1, 2, 3, 4, 5, 6};答案:A23. 在C语言中,下列哪个选项是正确的字符串复制?A. strcpy(a, b);B. strcopy(a, b);C. copy(a, b);D. strcp(a, b);24. 下列哪个选项是C语言中合法的内存分配?A. int *p = (int *)malloc(sizeof(int) * 10);B. int *p = malloc(10 * sizeof(int));C. int *p = (int *)malloc(10);D. int *p = malloc(sizeof(int) * 10);答案:A25. 在C语言中,下列哪个选项是正确的内存释放?A. free(p);B. delete p;C. deallocate p;D. dispose p;答案:A26. 下列哪个选项是C语言中合法的指针运算?B. p--;C. p += 2;D. p = 2;答案:A27. 在C语言中,下列哪个选项是正确的结构体赋值?A. Point p1 = {1, 2};B. Point p1 = p2;C. Point p1 = {1, 2};D. Point p1 = {1, 2, 3};答案:B28. 下列哪个选项是C语言中合法的枚举值使用?A. color = RED;B. color = 0;C. color = "RED";D. color = 1;答案:A29. 在C语言中,下列哪个选项是正确的宏替换?A. #define SQUARE(x) x * xB. #define SQUARE(x) (x) * (x)C. #define SQUARE(x) x * xD. #define SQUARE(x) (x) * (x)答案:D30. 下列哪个选项是C语言中合法的文件操作?A. FILE *fp = fopen("file.txt", "r");B. FILE *fp = open("file.txt", "r");C. FILE *fp = fopen("file.txt", "w");D. FILE *fp = open("file.txt", "w");答案:A31. 在C语言中,下列哪个选项是正确的文件读取?A. fscanf(fp, "%d", &a);B. scanf(fp, "%d", &a);C. fscanf(fp, "%d", a);D. scanf(fp, "%d", a);答案:A32. 下列哪个选项是C语言中合法的文件写入?A. fprintf(fp, "%d", a);B. printf(fp, "%d", a);C. fprintf(fp, "%d", &a);D. printf(fp, "%d", &a);答案:A33. 在C语言中,下列哪个选项是正确的文件关闭?A. close(fp);B. fclose(fp);C. fclose(fp);D. close(fp);答案:B34. 下列哪个选项是C语言中合法的错误处理?A. if (fp == NULL) { perror("Error opening file"); exit(1); }B. if (fp == NULL) { printf("Error opening file"); exit(1); }C. if (fp == NULL) { perror("Error opening file"); return 1; }D. if (fp == NULL) { printf("Error opening file"); return 1; }答案:A35. 在C语言中,下列哪个选项是正确的位运算?A. a & b;B. a && b;D. a || b;答案:A36. 下列哪个选项是C语言中合法的逻辑运算?A. a && b;B. a || b;C. a & b;D. a | b;答案:A37. 在C语言中,下列哪个选项是正确的自增运算?A. a++;B. ++a;C. a += 1;D. a = a + 1;38. 下列哪个选项是C语言中合法的自减运算?A. a--;B. --a;C. a -= 1;D. a = a - 1;答案:A39. 在C语言中,下列哪个选项是正确的类型转换?A. (int)a;B. int(a);C. (int)(a);D. int a;答案:C40. 下列哪个选项是C语言中合法的sizeof运算?A. sizeof(a);B. sizeof int;C. sizeof(int);D. sizeof "string";答案:C二、程序填空题(本大题共2小题,每小题10分,共20分)1. 给定以下代码片段,请填写缺失的部分以实现计算并打印两个整数的和。
14单招(2)班C语言模拟试题一一、选择题(每题2分,共30分)1.以下叙述中正确的是____。
A、用C程序实现的算法必须要有输入和输出操作B、用C程序实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出2.以下叙述中错误的是A、用户所定义的标识符允许使用关键字B、用户所定义的标识符应尽量做到“见名知意”C、用户所定义的标识符必须以字母或下划线开头D、用户定义的标识符中,大、小写字母代表不同标识3.若有double x,y; 执行x=1,y=x+3/2后y的值是____。
A、1B、2C、2.0D、2.54.在C语言类型说明中,int、char、short等类型的长度是()A.固定的B.由用户自己定义的C.任意的D.与机器字的长度有关的5..一个C语言程序是由()。
A. 一个主程序和若干个子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成6.已知int x=1,y=2,z;执行(z=1.0/y*x)语句后z的值是___。
A.0B.0.5C.1D.27以下能正确地定义整型变量a,b和c并为其赋初值5的语句是__。
A.int a=b=c=5;B.int a,b,c=5 ;C.int a=5,b=5,c=5 ;D.a=b=c=5;8.下列说法中错误的是( )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行9.若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a<b?a:c<d?c:d的值____。
A、1B、2C、3D、410.在C 语言中,每个语句必须以()结束。
A. 回车符B. 冒号C. 逗号D. 分号11.用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。
常宁市职业中专2013年下期高三第二次月考计算机应用专业《C语言程序设计》试题姓名:计分:一、选择题(5分*4=20分)1、下面程序段叙述正确的是【】int k=0; while (k=0) k=k-1;A) while循环执行10次 B) 无限循环C) 循环体一次也不被执行 D) 循环体被执行一次2、设:static char str[20]="Are you ready?";执行printf("%d\n",strlen(strcat(str,"OK")));后的输出结果为【】(注意各单词之间有一空格)A) 16 B) 10 C) 2 D) 203、判断字符串s1,s2是否相等,应该用【】A)if(s1==s2) B)if(s1=s2)C)if(strcmp(s1,s2)) D)if(!strcmp(s1,s2))4、有以下语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是【】A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2)二、程序阅读题(5分*8=40分)1、下列程序的运行结果是:main(){ int x=3;do {printf("%d\n",X-=2);}while(!(--x));}2、下列程序的运行结果是:main(){int i=1;while(i<=15)if(++i%3!=2) continue;else printf("%d ",i);printf("\n");}3、设有如下程序:main() Array {int s,t,a,b;scanf("%d,%d",&a,&b);s=1;t=1;if(a>0) s=s+1;if(a>b) t=s+t;else if(a==b) t=5;else t=2*s;printf("s=%d,t=%d",s,t);}4、下列函数的功能是:_______________________________sss(char *s ,char *t ){ while((*s)&&(*t)&&(*t++== *s++));return(*s-*t);}5、下列程序的运行结果是:___________________main(){ int a[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d ",a[1][i]);}6、下列程序的运行结果是:main(){int a[2][3]={1,2,3,4,5,6};int m,*ptr;ptr=&a[0][0];m=(*ptr)*(*(ptr+2))*(*(ptr+4));printf("%d\n",m);}7、下列程序的运行结果是:#include <iostream>int main(){char *s="12134211";Int k=0,v1=0,v2=0,v3=0,v4=0;for (;s[k];k++)switch(s[k]){ default:v4++;case '1':v1++;case '3':v3++;case '2':v2++; }printf("%d,%d,%d,%d\n",v1,v2,v3,v4);}8、下列程序的运行结果是:#include<iostream>void sort(char *p[],int n){char *temp;int i,j;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(strcmp(p[j],p[j+1])>0)){temp=p[j]; p[j]=p[j+1] ;p[j+1]=temp;}}int main(){char *a[5]={"student","worker","cadre","soldier","apen"};sort(a,5);for(int i=0;i<5;i++)printf(“%s\n”,a[i]);}三、程序填空:每空5分,共25分。
高三C语言三月份月考试题姓名:________ 班级:________总分:__________一、选择题(每小题5分,共30分)17.以下能正确进行字符串赋值、赋初值的语句组是()A) char s[5]={'a','e','i','o','u'}; B) char *s; s="good!";C) char s="good!"; D) char s[5]; s="good";18.执行x=5>1+2&&2||2*4<4-!0后, x的值为:()A) 3 B) 1 C) 2 D) 019.根据以下定义,能输出字母M的语句是()。
struct person{char name[9];int age;};struct person class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16,};A、printf(“%c\n”,class[3].name);B、printf(“%c\n”,class[3].name[1]);C、printf(“%c\n”,class[2].name[1]);D、printf(“%c\n”,class[2].name[0]);20.有以下说明和定义语句struct student{ int age; char num[8];};struct studentstu[3]={{20,"200401"},{21,"200402"},{10,"200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是()。
A) (p++)->num B) p->num C) (*p).num D) stu[3].age 21.有以下程序#include<stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,222、设有如下定义:int arr[]={6,7,8,9,10};int *ptr;ptr=arr;*(ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));则程序段的输出结果为A)8,10 B)6,8 C)7,9 D)6,10二、基本操作题(每空4分,共16分)28)C语言知识填空1、己知a所指的数组中有N个元素。
函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。
请填空。
void fun(int a[N],int k){ int i;for(i=k;i<N;i++) a[ 1 ]=a[i]; }2、有以下程序,请在处填写正确语句,使程序可正常编译运行。
#include <stdio.h>2 ;main(){ double x,y,(*p)();scanf("%lf%lf",&x,&y);p=avg;printf("%f\n",(*p)(x,y)); }double avg(double a,double b){ return((a+b)/2);}3、以下程序运行后的输出结果是。
#include <stdio.h>main(){ int i,n[5]={0};for(i=1;i<=4;i++){ n[i]=n[i-1]*2+1; printf("%d",n[i]); }printf("\n"); }4、以下程序运行后的输出结果是。
#include <stdio.h>#include <stdlib.h>#include <string.h>main(){ char *p; int i;p=(char *)malloc(sizeof(char)*20);strcpy(p,"welcome");for(i=6;i>=0;i--) putchar(*(p+i));printf("\n"); free(p); }三、综合应用题(每空5分,共20分)31. 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
#include <stdio.h>#include <string.h>#define N 8typedef struct{ char num[10];int year,month,day;} STU;1 fun(STU *std,char *num){ int i;STU a = {" ",9999,99,99};for (i=0;i<N;i++)if (strcmp( 2 ,num)==0)return( 3 );return a; }main ( ){ STU std[N] ={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333 ",1984,9,1},{"444444",1983,7,15},{"555555",1984,9,28},{"666 666",1983,11,15},{"777777",1983,6,22},{"888888",1984,8,19} };STU p; char n[10]="666666";p = fun( 4 );if (p.num[0] == 0) printf("\nNot found !\n");else { printf("\nSucceed !\n ");printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day); } }四、程序分析题(本题共3小题,共75分)33.阅读程序,写出运行结果(每空5分,共25分)1、#define f(x) x*xmain( ){int a=6;b=2,c;c=f(a)/f(b);printf(“%d”,c);} 程序运行结果是:_______________________ 2、void sum(int *a){ a[0]=a[1];}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--) sum(&aa[i]);printf("%d\n",aa[0]); } 程序运行结果是:_______________________3、main( ){int I,k,a[10],p[3];k=5;for(i=0;i<10;i++) a[i]=I;for(i=0;i<3;i++) p[i]=a[i*(i+1)];for(i=0;i<3;i++) k+=p[i]*2;printf(“%d”,k);}程序的输出结果是:___________________4、main( ){int I,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<3;j++){if(j%2) continue;x++;}printf(“x=%d”,x);}程序的输出结果是:___________________5、main( ){int a=1,b=3,c=5,d=4,x=4;if(a<b)if(c<d) x=1;else if(a<c)if(b<d)) x=2;else x=3;else x=6;else x=7;printf(“%d”,x);}程序运行结果是:_______________________ 34.程序填空。
按照题目的要求,将正确内容填入答题卡相应位置,使程序完整(每空5分,共25分)(1) 下面程序的功能是对链表进行建立和输出,每个结点有(num,name,next)三个成员请补充程序。
#include "stdio.h"#include "stdlib.h"#include "alloc.h"#define LEN sizeof(struct student)struct student{long num;char name[20];1 ;};main(){struct student *head, *p; int i;head=NULL;for(i=0;i<30;i++){p=(struct student *)malloc(LEN);scanf("%ld,%f",&p->num,p->name);p->next=head;2 ;}p=head;while(p!=NULL){printf("%ld,%5.1f\n",p->num,p->name);3 ; } }(2) 给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。
例如,形参s所指的字符串为:def35adh3kjsdf7。
执行结果为:defadhkjsdf3537。
#include <stdio.h>void fun(char *s){ int i,j = 0,k = 0;char t1[80] ,t2[80];for(i=0;s[i]!='\0';i++)if(s[i]>='0' && s[i]<='9')t2[j++]=s[i];else t1[k++] = s[i];t2[j] = 0; t1[k] = 0;for (i=0;i<k;i++)4 ;for (i=0;i< 5 ;i++)s[k+i] = t2[i]; }main ( ){ char s[80] = "ba3a54j7sd567sdffs";printf("\nThe original string is: %s\n",s);fun(s);printf("\nThe result is:%s\n",s); }35.阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。