上海市计算机二级考试(C语言)复习资料题目
- 格式:doc
- 大小:277.78 KB
- 文档页数:51
计算机二级c语言最新考试真题2024答案一、选择题在C语言中,以下哪个关键字用于定义一个函数?A. classB. voidC. structD. enum答案:B以下哪个符号在C语言中用作字符串的结束标志?A. \0B. \nC. \tD. \r答案:A在C语言中,要读取一个整数并存储到变量中,应使用哪个函数?A. getchar()B. scanf()C. printf()D. fgets()答案:B以下哪项不是C语言的基本数据类型?A. intB. floatC. stringD. char答案:C在C语言中,数组名表示的是?A. 数组的首地址B. 数组的长度C. 数组的第一个元素D. 数组的所有元素答案:A以下哪个循环结构在C语言中用于至少执行一次循环体?A. for循环B. while循环C. do-while循环D. 以上都不是答案:C在C语言中,指针变量主要用来存储什么?A. 整数值B. 浮点数值C. 内存地址D. 字符串答案:C以下哪个头文件在C语言中用于标准输入输出函数?A. <stdlib.h>B. <string.h>C. <stdio.h>D. <math.h>答案:C(注意:由于选择题通常包含多个小题,以上仅列出了部分小题作为示例。
)二、编程题(编程题通常要求考生编写C语言程序来解决特定问题,以下提供几个编程题示例及解题思路。
)编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
解题思路:定义一个函数isPrime,用于判断一个整数是否为素数。
在isPrime函数中,使用循环从2到该数的平方根(包含)进行遍历,检查是否存在能整除该数的因子。
如果存在因子,则返回0(表示不是素数);否则返回1(表示是素数)。
在主函数中,读取用户输入的整数,并调用isPrime函数进行判断,然后输出结果。
从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
计算机二级C语言上机复习题及答案解析范文一份计算机二级C语言上机复习题及答案解析 1计算机二级C语言上机复习题及答案解析填空题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。
ss所指字符串数组__有N个字符串,且串长小于M。
程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;for(i=0; i __1__ ; i++)if( strstr(ss[i], __2__) != NULL ){ find=1; puts(ss[i]); printf(“\n"); }if (find==__3__) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];int i;printf("\nThe original string\n\n");for(i=0;i printf("\nEnter a string for search : "); gets(str);fun(x,str);}解题思路:本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。
计算机二级证考试c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有以下定义:```cint a = 5, b = 10;```则执行以下语句后,变量a的值是多少?```ca += (b -= 3);```A. 8B. 12C. 15D. 2答案:B3. 在C语言中,以下哪个函数用于计算浮点数的平方根?A. sqrt()B. pow()C. log()D. exp()答案:A4. 若有以下代码:```cchar str[] = "Hello";```则str数组的长度是多少?A. 5B. 6C. 7D. 10答案:B5. 在C语言中,以下哪个运算符用于计算两个整数的模?A. %B. /C. *D. /答案:A6. 在C语言中,以下哪个关键字用于声明一个无限循环?A. whileB. forC. do...whileD. goto7. 若有以下定义:```cint x = 3;```则执行以下语句后,变量x的值是多少?```cx = (x - 1) ? (x - 1) : (x + 1);```A. 2B. 4C. 3D. 0答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A9. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. *10. 若有以下代码:```cint a = 10, b = 20;```则执行以下语句后,变量a的值是多少?```ca =b = 30;```A. 10B. 20C. 30D. 40答案:C二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个宏。
1、在C语言中,以下哪个关键字用于定义一个函数?
A. class
B. void
C. struct
D. enum
(答案)B
2、以下哪个符号在C语言中用作字符串的结束标志?
A. \0
B. \n
C. \t
D. \r
(答案)A
3、在C语言中,要读取一个整数并存储到变量中,应使用哪个函数?
A. getchar()
B. scanf()
C. printf()
D. fgets()
(答案)B
4、以下哪项不是C语言的基本数据类型?
A. int
B. float
C. string
D. char
(答案)C
5、在C语言中,数组名表示的是?
A. 数组的首地址
B. 数组的长度
C. 数组的第一个元素
D. 数组的所有元素
(答案)A
6、以下哪个循环结构在C语言中用于至少执行一次循环体?
A. for循环
B. while循环
C. do-while循环
D. 以上都不是
(答案)C
7、在C语言中,指针变量主要用来存储什么?
A. 整数值
B. 浮点数值
C. 内存地址
D. 字符串
(答案)C
8、以下哪个头文件在C语言中用于标准输入输出函数?
A. <stdlib.h>
B. <string.h>
C. <stdio.h>
D. <math.h>
(答案)C。
计算机二级C语言上机复习题及答案解析为了提高大家复习计算机等级的积极性,了上机复习题及答案解析,助大家备考计算机二级考试。
给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,假设没找到那么输出相应信息。
ss所指字符串数组中共有N个字符串,且串长小于M。
程序中库函数strstr(s1, s2)的功能是在 s1串中查找s2子串,假设没有,函数值为0,假设有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的构造!给定源程序:#include#include#define N 5#define M 15void fun(char (*ss)[M], char *substr){ int i,find=0;for(i=0; i< 1 ; i++)if( strstr(ss[i], 2) != NULL ){ find=1; puts(ss[i]); printf("\n"); }if (find==3) printf("\nDon't found!\n");}main(){ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Aess"},str[M];int i;printf("\nThe original string\n\n");for(i=0;i printf("\nEnter a string for search : "); gets(str);fun(x,str);}解题思路:此题是根据给定的字符串数组中查找指定的字符串,如果存在,那么显示。
1单选设有定义int a[10]; 则合法数组元素的下标范围为_0~9_____设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___20,30,30_____ if ( x>y ) z=x;x=y; y=z;printf("%d,%d,%d",x, y, z );执行下列语句序列后,不可能出现的运行结果是________ int n;scanf( "%d", &n);switch ( n ){case 1:case 2: putchar('X');case 3:case 4: putchar('Y'); break;default: putchar('Z');}2填空设有以下程序段,则执行完该程序段后,变量 i 的值是________ int i;char s[]="Hello!", *p=s;for( i=0; *(p+i)!='\0';i++ );阅读以下程序并写出运行结果___________ #include <stdio.h>main(){int k,n=0;for ( k=1; k<=1000; k++ )if ( k%3==0 && k%5==0 ){printf( "%d ", k );n++;if ( n==3 ) break;}}3程序填空以下程序输入n和n个大于1的正整数,输出其中素数。
如输入:5 19 93 11 37 15则输出:19 11 37例示说明:先输入n为5,再输入5个正整数,输出5个整数中的素数#include <stdio.h>void main(){int n, a, i, j, ct;scanf( "%d", &n );for ( i=0; ____(1)____; i++ ){______(2)______;scanf( "%d", &a );for( j=2; j<a; j++ )if ( ____(3)____ )ct++;if ( ct==0 )printf( "%d ", a );}printf( "\n" );}以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。
计算机二级考试c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是?A. intB. floatC. doubleD. char答案:A2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B3. C语言中,用于输入输出的库函数是?A. math.hB. stdio.hC. string.hD. conio.h答案:B4. 在C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D6. C语言中,用于定义一个字符型变量的关键字是?A. intB. charC. floatD. double答案:B7. 在C语言中,哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:B8. 下列哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A9. 在C语言中,哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. int[]答案:D10. C语言中,用于定义一个浮点型变量的关键字是?A. intB. floatC. doubleD. char答案:B二、填空题(每题2分,共20分)1. 在C语言中,表示“逻辑与”的运算符是________。
答案:&&2. C语言中,表示“逻辑或”的运算符是________。
答案:||3. C语言中,表示“非”的逻辑运算符是________。
答案:!4. 在C语言中,表示“大于等于”的比较运算符是________。
答案:>=5. C语言中,表示“小于等于”的比较运算符是________。
C语言程序设计(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题,每小题 1 分,共 10 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1. 下列C语言的标识符中,合法的标识符为____________答案: CA. #starB. 1234C. _a100D. 9circuit2. 若已定义: int x;则表达式 ((x=4*5,x*5),x+25) 的值是 ______ 。
答案: DA. 20B. 100C. 125D. 453. 若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“x=%d, y=%f”,&x,&y,); 时,正确的键盘输入是 ______ 。
答案:A. 55 55.5↙B. x=55, y=55.5↙C. 55↙55.5↙D. x=55↙y=55.5↙4. 若有说明语句:int x=10,y=20,z=30;则执行语句:if(x>y) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z); 后,输出是____________答案:A. 10,20,30B. 20,30,10C. 20,30,30D. 20,30,205. 程序段:int num=0;while(num<=2)printf(“%d ,”,num++);的运行结果是_______________答案:A. 0,1,B. 1,2,C. 0,1,2,D. 1,2,3,6. 若有说明:int a[3][4],s; ,则对数组a的元素引用错误的是____________答案:A. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[i][j];B. s=0; for(j=0;j<4;j++) for(i=0;i<3;i++) s+=a[i][j];C. s=0; for(i=0;i<4;i++) for(j=0;j<3;j++) s+=a[j][i];D. s=0; for(i=0;i<3;i++) for(j=0;j<4;j++) s+=a[j][i];7. 若用数组名作为函数调用时的实参,则实际上传递给形参的是____________答案:A. 数组首地址B. 数组的第一个元素的值C. 数组中全部元素的值D. 数组中的元素个数8. 若有定义:int i,j,*pi=&i; 则与i==j等价的比较表达式是____________答案:A. i==*piB. *pi ==*&jC. i==&jD. i==**pi9. 若有定义:struct person{int id ;char name[20];} per,*s=&per;则以下对结构体成员的引用中错误的是____________答案:A. B. s->name[0]C. (*per).name[8]D. (*s).id10. 若有以下语句:char x=3,y=6,z; z=y^x<<2;则z的二进制值是________________答案:A. 00011011B. 00001010C. 00011100D. 00001100二、填空题 ( 本大题 7 道小题,每空 2 分,共 14 分)。
计算机二级证c语言试题及答案一、选择题(每题2分,共40分)1. 下列哪个是C语言的关键字?A. mainB. ifC. forD. print2. C语言中,用于定义常量的关键字是:A. constB. staticC. finalD. volatile3. 在C语言中,定义整型变量的关键字是:A. floatB. intC. doubleD. char4. 下面哪个是C语言的赋值运算符?A. =B. ==C. +D. *5. 下列哪个运算符具有最高的优先级?A. +B. *C. =D. /二、填空题(每题4分,共40分)1. C语言中,用于输入函数的是______函数。
2. C语言中,用于输出函数的是______函数。
3. 声明函数的返回类型为整型时,应使用关键字______。
4. 下面代码的运行结果是:______。
int a = 5;int b = 2;double result = a / b;5. C语言中,用于定义宏的关键字是______。
三、编程题(共20分)请编写一个C语言程序,接受用户输入的四个整数,计算它们的和并输出结果。
```c#include <stdio.h>int main() {int num1, num2, num3, num4;printf("请输入四个整数:\n");scanf("%d %d %d %d", &num1, &num2, &num3, &num4);int sum = num1 + num2 + num3 + num4;printf("四个整数的和为:%d\n", sum);return 0;}```四、简答题(每题10分,共20分)1. 什么是C语言?C语言是一种广泛应用于系统编程和应用程序开发的程序设计语言,由Dennis Ritchie在20世纪70年代早期在贝尔实验室开发。
上海理工大学 上海市计算机二级考试(C语言)复习资料题目
C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框架,提供“基础知识、读程序写结果、改错、编程序和程序指令填空”几部份,供学生学习参考,文末附习题参考解答。
第一部份:基础知识 1. 下述循环的循环次数是() int k=2; while(k=0)printf("%d",k); k--;printf("\n"); A、无限次 B、0次 C、1次 D、2次 2. 在下列选项中,没有构成死循环的程序段是() A、int i=100; B、for(;;) while(1) {i=i%100+1; if(i>100)break; } C、int k=1000; D、int s=36; do {++k;} while(k>=10000); while(s);--s; 3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是() int a[]={0,1,2,3,4,5,6,7,8,9},*p,i; p=a; A、*(a+i) B、a[p-a] C、p+i D、*(&a[i]) 4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是() A、char s[3]={'B','o','y'}; B、char s[ ]="Boy"; C、char s[3]={"Boy"}; D、char s[3]; s[0]='B';s[1]='o';s[2]='y'; 5. 以下程序段的输出结果是( ) char arr[ ]="ABCD"; char*ptr; for(ptr=arr;ptrprintf("%s\n",ptr); A、ABCD B、 A C、 D D、 ABCD BCD CD D 6. C语言的auto型变量是() A、存储在动态存储区中。 B、存储在静态存储区中。 C、存储在计算机CPU的寄存器中。 D、存储在外存储器中。 7. 测试文件是否结束函数的函数名是() A、feof B、EOF C、eof D、FEOF 8. 下面程序段的输出结果是() int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4]; p=a; printf(―%d\n‖,*(*(p)+2)); A、1 B、5 C、3 D、7 9. C语言规定:在一个源程序中,main函数的位置是() A、必须在最开始 B、必须在系统调用的函数的后面 C、可以任意 D、必须在最后 10. 一个C程序的执行是从() A、 本程序的main函数开始,到main函数结束 B、 本程序的第一个函数开始,到本程序文件的最后一个函数结束 C、 本程序的main函数开始,到本程序文件的最后一个函数结束 D、 本程序文件的第一个函数开始,到本程序main函数结束 11. 下面的四个选项中,均是不合法的用户标识符的选项是() A、A B、float C、b-a D、_123 P_0 la0 goto temp do _A int INT 12. 下面四个选项中,均是合法转义字符的选项是() A、‘\‘‘ B、‘\‘ C、‘\018‘ D、‘\\0‘ ‗\\‘ ‗\017‘ ‗\f‘ ‗\101‘ ‗\n‘ ‗\‖‘ ‗xab‘ ‗x1f‘ 13. sizeof(float)是() A、一个双精度型的表达式 B、一个整型表达式 C、一种函数调用 D、一个不合法的表达式 14. 下述循环的循环次数是() int k=2; while(k=0)printf("%d",k); k--;printf("\n"); A、无限次 B、0次 C、1次 D、2次 15. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是() int a[]={0,1,2,3,4,5,6,7,8,9},*p,i; p=a; A、*(a+i) B、a[p-a] C、p+i D、*(&a[i]) 16. 若二维数组a有m列,则在a[i][j]前的元素个数为() A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+1 17. 对两个数组a和b进行如下初始化 char a[ ]=‖ABCDEF‖; char b[ ]={‗A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘}; 则以下叙述正确的是( ) A、a与b 数组完全相同 B、a 与b 长度相同 C、a 和b中都存放字符串 D、a数组比b 数组长度长 18. C语言中有关全局变量的说法,正确的是() A、在使用到它的所有文件中均需定义 B、在函数体外定义一次 C、在main函数中定义 E、 在main函数外定义 19. 若有数组名作为函数调用时的实参,则传递给该函数形参的是() A、数组的首地址 B、数组的第一个元素的值 C、数组中全部元素的值 D、数组元素的个数 20. 下面程序段的输出结果是() int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3]; p=a; printf(―%d\n‖,*(*(p+1)+2)); A、3 B、4 C、6 D、7 21. 不属于C语言程序基本结构的是( ) A)顺序结构 B)选择结构 C)函数结构 D)循环结构 22. 若有定义及赋值: int a[6][6],*p;p=*a; 则下列各式中能表示元素a[0][1]列地址的表达式是 。 A)&a[0]+1 B)a[0]+1 C)*(p+1) D)p+1 23. 十进制数123转换成十六进制数是 。 A) 7AH B) 7BH C) 7CH D) 7DH 24. C语言中合法的字符常量是 。 A) '\058' B) 'ab' C) '\xab' D) ‖\0‖ 25. 下列字符中,ASCⅡ码值最小的是 。 A) A B) a C) 0 D) 空格 26. 下面程序输出结果是__________ main() {int k=0; char c='A'; do { switch( c++ ) { case 'A': k++; break; case 'B': k--; case 'C': k+=2; break; case 'D': k=k%2; continue; case 'E': k=k*10; break; default: k=k/3; } k++; }while( c<'G' );
printf( "k=%d\n",k ); } A)k=3 B)k=4 C)k=2 D)k=0 27. 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是( ) A)1 B)0 C)-1 D)2 28. C语言规定,函数返回值的类型是由 。 A) return语句中的表达式类型所决定 B) 调用函数时的主调函数类型所决定 C) 调用函数时系统临时决定 D) 在定义该函数时所指定的函数类型所决定 29. 下列定义中,不是指针数组定义的是 。 A)int *p[5]; B)float *q[4]; C)int (*r)[6]; D)char *w[7]; 30. 以下程序运行结果为__________ #define PT 3.5 #define S(x) PT*x*x main() { int a=1, b=2; printf("%4.1f\n",S(a+b)); } A)14.0 B)31.5 C)7.5 D)10.5 31. 下面程序输出结果是( ) main() { char a[]="ABCDEFG", k, *p; fun(a, 0, 2); fun(a, 4, 6); printf("%s\n", a); } fun(char *s, int p1, int p2) { char c; while(p1 {c=s[p1]; s[p1]=s[p2]; s[p2]=c; p1++; p2--; } } A)ABCDEFG B)DEFGABC C)GFEDCBA D)CBADGFE
32. 以下程序的输出结果是( ) main() { int a=1,i; for(i=0;i<4;i++) printf("%d",func(a)); } func(a) int a; { int b=0; static int c=1; b++;c++; return(a+b+c); } A)4444 B)4455 C)4567 D)5678 33. 执行下面的程序后, y 的值是__________ main() { int a[]={2,4,6,8,10}; int y=1, x, *p=a+1; for( x=0; x<3; x++ ) y+=*(p+x); printf( "%d\n", y ); } A)17 B)18 C)19 D)20
34. 若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应该是( ) int a; float b; scanf("a=%d,b=%f",&a,&b); A) 30 5.0 B) a=30,b=5.5 C) 30,5.5 D) a=30 b=5.5