江苏省计算机二级C语言试题笔试(8份)
更新时间:2024-06-17 14:08:01 阅读量: 综合文库 文档下载
C语言考试要求
1.C语言的基本概念。
(1)源程序的格式、风格和结构,main函数及其他函数的基本概念。 (2)基本算术类型数据的表示及使用。
①类型标识符(int,float,double,char)的意义及使用;类型修饰符(long,short,signed,unsigned)的意义及使用。
②基本类型常量的表示及使用:int型常量的十进制、八进制、十六进制形式;float型常量、double型常量的十进制小数形式、十进制指数形式.;char型常量形式,常用转义字符;字符串常量形式;符号常量的命名、定义与使用。
③基本类型变量的命名、声明、初始化及使用。 ④使用函数返回值作为操作数。 (3)运算符和表达式的表示及使用。 ①表达式的一般组成。
②运算符功能、表达式的组成及表达式的值:赋值运算符与赋值表达式,赋值运算符的左值要求;算术运算符与算术表达式,++、- -运算符的左值要求;关系运算符与关系表达式;逻辑运算符与逻辑表达式,含有&&,||运算符的表达式的操作数求值顺序与优化处理;逗号运算符与逗号表达式,逗号表达式的操作 数求值顺序;条件运算符与条件表达式;位运算符与位运算表达式。
③运算符的目数。
④运算符的优先级与结合性。
⑤表达式运算中操作数类型的自动转换与强制转换。 2.基本语句
(1)实现顺序结构的语句:表达式语句(包括函数调用语句)、空语句、复合语句;标准设备文件输入输出函数:printf()、scanf()、getchar()、putchar()、gets ()、puts()。
(2)实现选择结构的语句:if?else?语句、switch语句和break语句。 (3)实现循环结构的语句:while语句、do_while语句、for语句。 (4)其他语句:break、continue、return。 3.构造类型数据。
(1)基本类型数组(一维、二维)。 ①数组的命名、声明及初始化;
1
②数组的存储结构; ③数组元素的引用;
④字符数组的使用(字符串的存储及基本操作)。 (2)结构体变量和数组。
①结构体数据类型的定义;
②结构体变量、结构体数组的声明及初始化;
③结构体变量中成员、结构体数组元素中成员的赋值和引用。 (3)联合体变量和数组。 ①联合体数据类型的定义; ②联合体变量和数组的声明;
③联合体变量中成员、联合体数组元素中成员的赋值和引用。 4.函数。
㈩非递归函数的定义、声明、调用及执行过程
①函数的定义:函数命名;函数类型(返回值类型):基本数据类型、结构体类型、指针类型;函数形式参数的声明;函数体定义、函数返回值与return语句的使用。
②函数的声明(函数原型)。 ③函数的调用。
(2)递归函数的定义、声明、调用及执行过程。 (3)函数调用时参数的传递。
①传数值:将常量或表达式的值传递给函数;将基本类型变量的值传递给函数,将数组元素的值传递给函数;将结构体变量中一个成员的值传递给函数;将结构体变量全部成员的值传递给函数。
②传地址值:将基本类型变量、结构体变量的地址值传递给函数;将基本类型数组元索、结构体类型数组元素的地址值传递给函数。
③函数调用时实际参数类型与形式参数类型的兼容。 (4)函数返回值的产生
①从函数返回一个常量的值、一个表达式的值、一个基本类型变量的值、一个组元素的值、结构体变量中一个成员的值;
②从函数返回一个结构体变量全部成员的值。
(5)变量的作用域:全局变量、局部变量与函数的形式参数变量的作用域。 (6)局部变量、函数形式参数变量的存储类型和生存期。
2
(7)main函数命令行参数。 5.指针类型数据。
(1)指针与地址的概念,取地址运算符&的使用。 (2)基本类型变量的指针操作。 ①基本类型变量指针的获得;
②指向基本类型变量的指针变量的声明。初始化、赋值及使用,指针变量的基本类型
③间接引用运算符*的使用。 (3)基本类型数组的指针操作。
①数组元素指针的获得(指针常量)及算术运算;
②指向数组元素的指针变量的声明、初始化、赋值、算术运算及引用; ③数组行指针的获得(指针常量)及算术运算
④指向数组中一行元素的行指针变量的声明.、初始化、赋值、算术运算及引用。
(4)结构体变量、结构体数组的指针操作。
①、结构体变量指针、结构体数组元素指针的获得: ②指向结构体变量的指针变量的声明、初始化、赋值及引用; ③指向结构体数组的指针变量的声明、初始化、赋值、算术运算及引用。
(5)函数的指针操作。 ①函数的指针的获得
②指向函数的指针变量的声明、初始化、赋值及引用。 (6)指针数组的声明和使用。 (7)二级指针的声明和使用。
(8)指针作为函数的参数传递给函数:将基本类型变量的指针、结构体变量的指针、数组元素的指针、数组的行指针、函数的指针传递给函数。
6.单向链表的建立与基本操作。 (1)结点的数据类型定义。
(2)使用malloc()函数、free()函数动态申请和释放结点存储区。 (3)链表基本操作:建立一个新链表。遍历一个链表的全部结点豹值、插入新结点、删除结点。
3
7.枚举类型数据。 (1)枚举类型定义。
(2)枚举变量的命名、声明。 (3)枚举常量的使用。 (4)枚举变量的赋值及使用。 8.预处理命令。 (1)预处理的概念和特点。
(2)#define命令及其使用:定义符号常量、定义带参数的宏。 (3)#include命令及其使用。 9.文件操作。 (1)文件指针变量的声明
(2)缓冲文件系统常用操作函数的使用:fopen()、fdose()、fprintf():、fscanf()、
fgetc()、fputc()、fgets()、fputs()、feof()、rewind(),fread(),fwrite(),fseek().
10.其他常用库函数。
(1)数学函数(头文件math.h):abs()、fabs(),sin(),cos()、tan(),asin(),acos()、Atan(),exp(),sqrt(),pow(),fmod(),log(),log10(). (2)字符串处理函数(头文件string.h):strcmp()、strcat()、strcpy(),stilen()。
(3)字符处理函数(头文件ctype.h):isalpha()、isdigit()、idawer()、isupper()、isspace()。
11.应当掌握的一般算法。 (1)基本操作:交换,累加、累乘
(2)非数值计算常用经典算法:穷举,排序(冒泡法。插入法、选择法),归并(或合并),查找(线性法,折半法)
(3)数值计算常用经典算法。
①级数计算(递推法)、一元非线性方程求根(牛顿迭代法)、矩阵转置;
②一元非线性方程求根(半分区间法):定积分计算(梯形法、矩形法)、矩阵乘法。
(4)解决各类问题的一般算法。
4
笔试形式
笔试部分由基础知识和c语言程序设计两部分组成,共60分。基础知识全部为单选题,共20分(每题1分)。c语言程序设计部分分为单选题(10分,每题1分)和填空题(30分,每空1分)。
答题要求:单选题的答案必须涂划在专用答题卡上;填空题的答案必须写在专用答题纸上(填空时注意:每个填空要按标号顺序填,一空占一行,不是一题一行;因为有的题目一题包含多个空)。
c语言考试如何判断合格!
江苏省计算机等级考试的考务细则规定:二级笔试和上机操作考试成绩均须达到规定 标准,方为合格。优秀的考生则要求两部分都必须达到优秀,总分85分以上(含85分)且两部分都达到了优秀标准,而不是两部分加起来达到85分以上。
上机考试形式
上机题总分为40分,其中改错题占18分,编程题占22分。 (1)改错题:改错题中所存在的错误主要是语法错误(如数组的声明错误、函数定义错误等)、运行错误(如包含不正确的头文件)、逻辑错误等。 (2)编程题:编程题程序中,通常都涉及一个有一定难度的算法,考生须按题目要求实现,并且要求考生将算法运行的结果输出到指定文件中。所以,考生必须熟练掌握常用算法和文件的读写操作。
上机编程题的方法和技巧
(1)开始做编程题时,不要急着动手写程序,一定要把题意理解清楚。然后,在纸上写下关键算法的思想和实现的语句。最后,按“输入数据_数据处理_÷输出数据”的流程写出主程序及相关函数。
(2)输出文件处理。
在完成编程题时,通常要求考生把结果输出到文件myf2.out中,但在平时练习或考试完成这项功能时,考生常常会遇到一系列的问题:
①想查看结果是否输出到myf2.out中,却不知道myf2.out如何打开。
找到myf2.out文件后,点击右键,选择“打开方式”,在对话框中选择“记事本”,并选择“始终使用该程序打开这些文件”。以后双击myf2.out
5
文件时,将用记事本打开mym.out。
②每运行一次程序,都要打开一次myf2.out,查看运行结果,很麻烦也很浪费时间。其实在编写程序时,没有必要在一开始就将所有结果都输出到myf2.out中,可先将所有结果都输出到显示器上,这样比较直观。待能够正确输出所有结果后,再加人必要的文件输出语句,这样可节省时间。
③无法写入myf2.out文件。
先检查myf2.out文件的大小,如果文件大小为0K,不用打开文件便可知道文件没有被写入。 导致myf2.out无法写入的主要原因是文件操作有误。正确的文件操作过程如下:
(a)在源程序中使用#include
在stdio.h文件中被定义的。
(b)定义文件指针。例如,“FILE *out;”。
(c)打开文件。把要进行读写的文件与磁盘中实际存储的数据文件建立关联。
例如:
out=fopen(”myf2.out”,”w”);
”w”表示为输出打开文件myf2.out。注意它与”a”的不同,”a”是在文件尾部增加数据,而\”是用新数据覆盖原有数据。
(d)对文件进行写操作。可使用fprinff对文件进行写操作,函数的格式如下:
fprintf(文件指针,格式字符串,输出列表) 例如:
fprintf(out,”%d”,m); fread(f,4,2,fp);
(e)文件使用完毕后,使用函数关闭文件。 例如:
fclose(out);
(3)上机编程题是按步给分的,每项操作都有相应的分值。所以,即便不能编写出完整程序,也不要轻易放弃。要尽量把变量定义和可能要用的程序结构写出来。
6
江苏省计算机等级考试
- 学年 第 学期 c程序设计 试卷( )
题号 得分 总一 二 三 四 五 六 七 八 九 分 一、选择题(本题共20道小题,共40分。) 1. 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf(\ B)p=(double*)malloc(8);scanf(\C) p=&a;scanf(\ D)p=&a; scanf(\
2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main( ) { int x; scanf(\if(x + + >5) printf(\
else printf(\ }
A) 7和5 B) 6和3 C) 7和4 D) 6和4
3. 下面程序的输出是
A) xyzabcABC B) zabcABC #include
{ char *p1=\strcpy(str+2,strcat(p1,p2)); printf(\
4. 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;
则数值为4的表达式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
5. 以下叙述中不正确的是
7
C) yzabcABC D) xyabcABC
A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量
6. 请选出以下程序段的输出结果 #include
#define MIN(x,y) (x)<(y)? (x):(y) main() { int i,j,k; i=10; j=15; k=10*MIN(i,j); printf(\}
A) 15 B) 100 C) 10 D)150
7. 在C程序中,可把整型数以二进制形式存放到文件中的函数是 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数
8. 设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\\0'},*p; p=&a[0];
则表达式_____的值是6。
A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n
9. C语言中形参的缺省存储类别是 A)自动(auto) B)静态(static) C)寄存器(register) D)外部(extern) 10. 执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10;
A) 不定值 B) 33 C) 30 D) 10 11. 已知字母A的ASCII码为十进制的65,下面程序的输出是 main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';
printf(\A) 67,D B) B,C
C) C,D
D) 不确定的值
12. 语句:printf(\,12 &012);的输出结果是
8
A) 12 B) 8 C) 6 D) 012
13. 以下说法中正确的是
A) C语言程序总是从第一个的函数开始执行
B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行
D) C语言程序中的main()函数必须放在程序的开始部分
14. 以下程序运行后,输出结果是 main( ) {
char *s=\s+=2;
printf(\,s); }
A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错
15. 设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y<=50;y++) {
if(x>=10)break;
if(x%2==1){x+=5;continue;} x-=3; }
A)2 B)4 C)6 D)8
16. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 if(a
A)1 B)2 C)3 D)6
17. 设所有变量均为int型,则表达式(a=2,b=5,b++,a+b)的值是 A.7 B.8 C.6 D.2
18. 设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为: A) 0-255
9
B) 1-32767 C) 0-65535 D) 0-2147483647
19. 下面的程序 main()
{ int x=3,y=0,z=0; if(x=y+z)printf(\else printf(\A) 有语法错误不能通过编译 B) 输出* * * *。
C) 可以通过编译,但是不能通过连接,因而不能运行。 D) 输出# # # #。
20. 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是 A)3 B)4
二、填空题(每空1分,共10分。)
1. 若有定义:double x[3][5],则x数组中行下标的下限为_________,列下标的下限为__________。
2. 设有说明语句\a[3][4]={{1,2},{3,4,5},{6,7,8}};\则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。
3. 表达式7/2的结果是____________。表达式7%2的结果是____________。 4. 若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。 5. C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为______________。
6. 定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。 7. 已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应scanf(\调用语句的数据输入形式是__________
三、判断题(本题共10道小题,共10分。)
1. 在实际编程中,do-while循环完全可以用for循环替换( ) 2. do-while循环中,根据情况可以省略while( )
3. 若调用一个函数,且此函数中没有return语句,则返回一个不确定的值( ) 4. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后( )
5. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式( ) 6. 全局变量使得函数之间的\耦合性\更加紧密,不利于模块化的要求( )
10
C)5 D)6
7. 函数的定义可以嵌套,但函数的调用不可以嵌套( ) 8. 一个变量在内存中占据一定的存储单元( )
9. 在while循环中允许使用嵌套循环,但只能是嵌套while循环( ) 10. 字符型数组中可以存放字符串( )
四、程序填空(本题共5道小题,每题4分,共20分。) 1. 设有以下程序: main() { int n1,n2; scanf(\while(n2!=0) { n1=n2; n2=n2/10; printf(\} }
程序运行后,如果从键盘上输入1298;则输出结果为_________。 2. 以下程序输出的最后一个值是__________。 int ff(int n) { static int f=l; f=f*n; return f; } main() { int i;
for(I=1;I<=5;I++ printf(\}
3. 编写程序,计算s=1+(1+2)+(1+2+3)+?+(1+2+3+?+n)的值。 #include
int n,s,sum=0; scanf(\ for(int i=1;i<=n;i++) {
____________; for(int j=1;j<=i;j++) _____________; sum+=s; }
printf(\}
11
4. 若输入3个整数3,2,1,则下面程序的输出结果是____________。 #include
t=uu[n--]; t+=3*uu[n]; n=n++; if(t>=10)
{ uu[n++]=t/10; uu[n]=t;} else uu[n]=t; } main( )
{ int i, n, aa[10]={0,0,0,0,0,0} scanf( \for(i=1; i 5. 下列程序的输出结果是___________。 int ast(int x,int y,int * cp,int * dp) { *cp=x+y; *dp=x-y; } main() { int a,b,c,d; a=4;b=3; ast(a,b,&c,&d); printf(\} 五、编程题(本题共2道小题,共20分。) 1. 打印出杨辉三角形(要求打印出10行如下图) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 12 2. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。 江苏省计算机等级考试 - 学年 第 学期 c程序设计 试卷(参考答案) 题号 得分 一、选择题(本题共20道小题,共40分。) 1. D 2. A 3. D 4. D 5. D 6. A 7. A 8. D 9. A 10. A 11. A 12. B 13 总一 二 三 四 五 六 七 八 九 分 13. C 14. C 15. C 16. B 17. B 18. C 19. D 20. A 二、填空题(每空1分,共10分。) 1. 2 , 4 2. 0 , 8 3. 3 , 1 4. 1 5. 字母数字或下划线 6. 3 7. 10,12,410.34 三、判断题(本题共10道小题,共10分。) 1. 对 2. 错 3. 对 4. 对 5. 对 6. 对 7. 错 8. 对 9. 错 10. 错 四、程序填空(本题共5道小题,每题4分,共20分。)1. 8921 2. 120 3. s=0 , s+=j 4. 2 7 2 1 或2721 5. 7 1 五、编程题(本题共2道小题,共20分。) 1. main() {int i,j; int a[10][10]; printf(\ 14 for(i=0;i<10;i++) {a[i][0]=1; a[i][i]=1;} for(i=2;i<10;i++) for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf(\ printf(\ } } 2. main() { static int k[10]; int i,j,n,s; for(j=2;j<1000;j++) { n=-1; s=j; for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } } if(s==0) { printf(\ for(i=0;i printf(\ printf(\ } } } 江苏省计算机等级考试 – 学年 第 学期 C 语言程序设计试卷 15 题号 一 二 三 四 五 六 七 八 九 得分 一、选择题(本大题共10小题,每题3分,共30分) 1. 以下选项中属于C语言的数据类型是( ) A.复数型 B .逻辑型 C .双精度型 D. 集合型 2. 要判断char型变量m是否是数字,可以使用下列表达式( ) A.0<=m && m<=9 B. ‘0’<=m && m<=’9’ C. “0”<=m && m<=”9” D. 前面三个答案均是错误的 3. 为了判断两个字符串s1和s2是否相等,应当使用( ) A.if (s1= =s2) B. if (s1=s2) C. if ( strcpy (s1,s2) ) D. if ( strcmp( s1,s2)= =0 ) 4. 以下说法正确的是( ) A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 5. 以下错误的描述是( ) A. 不同函数中可以使用相同的变量名 B. 形式参数是局部变量 C. 一个函数内部定义的变量只能在本函数范围内有效 D. 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 6. 要说明一个有10个int 元素的数组,应当选择语句( ) A.int a[ 10 ]; B. int a[ 2, 5 ] C. int a[ ]; D. int *a[ 10 ]; 7. 说明语句”int ( * p ) ( ) ;”的含义是( ) A. p是一个指向一维数组的指针变量 B. p是指针变量,指向一个整型数据 C. p是一个指向函数的指针,该函数的返回值是一个整型 D. 以上都不对 8. 已知:char b[ 5 ] , *p=b; 则正确的赋值语句是( ) A. b=”abcd”; B. *b=”abcd”; C. p=”abcd” ; D. *p=”abcd”; 9. 下面的四个运算符中,优先级最低的是( ) A.( ) B. . C. —> D. + + 10. C语言中标准输入文件stdin 是指( ) A.键盘 B. 显示器 C. 鼠标 D. 硬盘 二、写出运行结果(本大题共4小题,每题5分,共20分) 1.# include 总 分 16 ch=getchar( ); switch( ch ) { case 65: printf(“%c”, ‘A’); case 66: printf(“%c”,’B’); default: printf(“%s\\n”,”other”); } } 如程序可以正常运行,当从键盘输入 字母A时,输出结果为( ) 2. # include int d=1l; fun( int p ) { int d=5; d+=p++; printf(“%d”,d); } main( ) { int a=3l; fun(a); d+=a++; printf(“%d”,d); } 运行结果是 3.# include While( j++<10) ; Printf(“i=%d, j=%d\\n”, i,j); } 运行结果是 4.# include , static char a* +=”Program”, *ptr; for( ptr=a;ptr putchar ( *ptr ); } 三、阅读程序、填空(每空2分,共18分) 1、下面程序输出3到100之间的所有素数。 17 # include for ( i=3; i<=100; i++) { for(j=2;j<=i-1; j++) if ( ) break; if ( ) printf(“M”,i); } } 2、 下面的函数sum(int n )计算1~n的累加和 sum(int n) { if (n<=0) printf(“data error!\\n”); if (n= =1) ; else ; } 3、 下面的程序是使用冒泡法对输入的10个浮点数从小到大进行排序。 # include { float a[ 10 ],x; int i,j; printf(“input 10 numbers please\\n”); for( i=0; ; i++) scanf(“%f”,&a*i]); printf(“\\n”); for( i=1; ; i++) for (j=0; ;j++) if ( ) { x=a[j]; ; a[j+1]=x; } 四、 设计题(本题共3小题,1、2每题10分,3题12分,共32分)1、写一函数,求方程aX2+bX+c=0的根。从主函数输入a、b、c的值 18 2、 写一函数,输入一个二进制数,输出相应的十进制数 3.建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,将此结点删去 一、选择题(10*2’) 1 c 2 b 3 d 4 c 5 d 6 a 7 c 8 c 9 d 10 a 二、写出程序运行结果(6*3’) 1 ABother 2 .8 4 3 I=10,j=11 4 Porm 三、填写程序(9*3’) 1 I % j = =0 j= =i 2 return(1) return(sum(n-1)+n) 3 I<10 I<9 j<10-I a[j]>a[j+1] a[j]=a[j+1] 1 # include 19 greater_than_zero(float a, float b) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(float a,float b) { x1=x2=(-b)/(2*a); } smaller_than_zero(float a,float b) { p= -b/(2*a); q=sqrt(disc)/(2*a); } main( ) { float a,b,c; scanf(“%f,%f,%f”,&a,&b,&c); disc=b*b-4*a*c; if ( disc>0) { greater_than_zero(a,b); printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2);else if(disc = =0) { equal_to_zero( a,b); printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2); } else {smaller_than_zero( a,b); printf(“x1=%5.2f\\tx2=%5.2f\\n\\n”,x1,x2); } } a) #include { char t[MAX]; i=0; flag=0; flag1=1; while((c=getchar())!=’\\0’ && I else if( flag) , t*I+=’\\0’; c=getchar(); if (c= =’N’||c= = ‘n’) flag1=0; 20 else { flag=0; I=o; Printf(“ input a hex number:”,htoi(t)); } } } } htoi( char s[ ]) { int I, n; n=0; for(I=0;s*I+!=’\\0’;I++) n=n*2+s[I]-‘0’; return(n); } 3 #define NULL 0 #define LEN sizeof( struct student) struct student { char num[6]; char name[8]; char sex[2]; int age; struct student * next; } stu[10]; main( ) { struct stuent * p; *pt, * head; int I,length,iage,flag=1; int find=0; while(flag= =1) , scanf(“%d”,&length); if (length<10) flag=0; } for( I=0;I { p=(struct student *)malloc(LEN); if(I= =0) head=pt=p; else pt->next=p; pt=p; scanf(“%s”,p->num); scanf(“%s”,p->name); scanf(“%s”,p->sex); 21 scanf(“%d”,&p->age); } p->next=NULL; printf(“input age:”); scanf(“%d”,&iage); pt=head; p=pt; if( pt->age= =iage) { p=pt->next; head=pt=p; find=1; } else pt=pt->next; while (pt!=NULL) { if(pt->age= = iage) { p->next=pt->next; find=I; } else p=pt; pt=pt->next; } if(!find) printf(“not found\\n”); p=head; while(p!=NULL) , printf(“%4s%8s”,p->num,p->name); printf(“%6sm\\n,p->sex,p->age); p=p->next; } 江苏省C等级考试(四) 一、选择题(本题共20道小题,共40分。) 1. (14) 指针s所指字符串的长度为 char *s=\A) 19 B) 15 C) 18 D)说明不合法 2. 若有下面的程序片段: int a[12]={0}, *p[3], **pp, i; 22 for(i=0; i<3; i++) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是 A) pp[0][1] 3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 A) a<>0 B) !a C) a=0 4. 若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10] 5. 以下程序的输出结果是 main( ) { int x=10,y=10,I; for(i=0;x>8;y=++i) printf(\,%d \,x--,y); } A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 6. 下面程序的输出是 void prtv(int *x) printf(\main() { int a=25; prtv(&a);} A) 23 B) 24 C) 25 D) 26 7. 下面能正确进行字符串赋值操作的语句是 A)char s[5]={\ B)char s[5]={'A'、'B'、'C'、'D'、'E'}; C) char *s;s=\ D)char *s; scanf(\,s); 8. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为 x=y=z=1;t=++x||++y&&++z; A)不定值 B)2 C)1 D)0 9. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是 23 B) a[10] C) p[3][1] D) *(*(p+2)+2) D) a A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1 *(*p2); 10. 请读程序: #include printf(\} 上面程序的输出结果是 A) 12 B) 15 C) 16 D) 20 11. sizeof(float)是: A) int B) float C) double D) 不确定 12. 若执行下面的程序时从键盘上输入3和4,则输出是 main() { int a,b,s; scanf(\s=a; if(a printf(\ A) 14 B) 16 C) 18 D) 20 13. 以下程序的输出结果是 # include { printf(\ } A) 不确定的(因变量无定义) B)0 C)-1 D)1 14. 请读程序: #include 24 } main() { printf(\上面程序的输出结果是 A) 3 B) 6 15. 下面各语句行中,能正确进行赋字符串操作的语句行是 A) char st[4][5]={\C) char *s; s=\ 16. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 A) *p=&a; scanf(\,p); B) p=(long *)malloc(8); scanf(\,p); C) scanf(\,p=&a); D) scanf(\,&a); 17. 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是 A) p+1 B) a+1 C) a++ D) ++p 18. 下面程序的输出是 main() { enum team {my,your=4,his,her=his+10}; printf(\A) 0 1 2 3 B) 0 4 0 10 19. 以下程序输出结果是 main( ) { int m=5; if(m++>5)printf(\,m); else printf(\,m--); } A)7 B)6 C)5 D)4 20. 以下程序运行后,输出结果是 int d=1; fun(int p) { int d=5; d+=p++; printf(\,d); } main() 25 C) 8 D) 0 B) char s[5]={'A','B','C','D','E'}; D) char *s; scanf(\ C) 0 4 5 15 D) 1 4 5 15 { int a=3; fun(a); d+=a++; printf(\,d); } A)84 B)99 C)95 D)44 二、填空题(每空1分,共10分。) 1. 程序由主要由__________、_________组成。 2. 在C语言中,不同运算符之间运算次序存在_________的区别,同一运算符之间运算次序存在________的规则。 3. 欲将字符串S1复制到字符串S2中,其语句是 ____________ 。 4. 结构化程序设计中的三种基本结构是_________、__________、___________。 5. 表达式x=x+1表示成增量表达式为___________。 6. 定义int a[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。 三、判断题(本题共10道小题,共10分。) 1. 在不得已的情况下(例如提高程序运行效率),才使用goto语句( ) 2. 条件表达式可以取代if语句,或者用if语句取代条件表达式( ) 3. 在C程序中对用到的所有数据都必须指定其数据类型( ) 4. 可以对字符型数组进行整体输入、输出( ) 5. 函数中的静态变量在函数每次调用时,都会重新设置初值( ) 6. 实参和与其对应的形参共占用一个存储单元( ) 7. 一个实型变量的值肯定是精确的( ) 8. 在不同函数中可以使用相同名字的变量( ) 9. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2连接到串str1之后再将串str1复制到串str3中( ) 10. 系统不允许用户重新定义标准库函数( ) 四、程序填空(本题共5道小题,每题4分,共20分。) 1. 22、 main() { int i=5; char c[6]=\; do { c[i]=c[i―1]; }while(――i>0); 26 下面程序的运行结果是________。 #include puts(c); } 2. 以下程序的执行结果是____________。 #include<stdio.h> main( ) { int a[3][3]={1,2,3,4,5,6,7,8,9},i,s=0; for(i=0;i<=2;i++) s=s+a[i][i]; printf("s=%d\\n",s); } 3. 以下程序中, for循环体执行的次数是______________。 #define N 2 #define M N+1 #define K M+1*M/2 main() { int i; for(i=1;i 4. 以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。 void sstrcpy(char *s,char *t) { while(*s++=_____________);} main( ) { char str1[100],str2[]=\ sstrcpy(str1,str2); printf(\} 5. 14、 以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。请填空。 char fun(char ch) { if(ch= ='Z') ch=__________; else if(ch>='A'&&ch<='Y') ch=__________; return ch; } 27 五、编程题(本题共2道小题,共20分。) 1. 从键盘输入一个一维数组,将这个数组逆序输出。 2. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为:as,则应输出6。 江苏省C等级考试(四) 一、选择题(本题共20道小题,共40分。) 1. B 2. C 3. D 4. D 5. D 6. D 7. C 8. C 9. B 10. A 11. C 12. B 13. B 14. B 15. C 16. A 17. C 18. C 19. B 20. A 二、填空题(每空1分,共10分。) 1. 数据结构 ,算法 2. 先后 , 结合性 3. strcpy(s2,s1) 4. 顺序 , 选择 ,循环 5. x++或++x 6. 3 28 三、判断题(本题共10道小题,共10分。) 1. 错 2. 错 3. 对 4. 错 5. 错 6. 错 7. 错 8. 对 9. 错 10. 对 四、程序填空(本题共5道小题,每题4分,共20分。)1. aabcd 2. s=15 3. 4 4. *t++ 5. 'A' , ch+1 五、编程题(本题共2道小题,共20分。) 1. #define N 5 main() { int a[N]={9,6,5,4,1},i,temp; printf(\ for(i=0;i printf(\for(i=0;i 2. #include \#include \#include \ int fun(char *str,char *substr) { int i,n=0,s=strlen(str); for(i=0;i 29 if((str[i]==substr[0])&&(str[i+1]==substr[1])) n++; return n; } main() { char str[81],substr[3]; int n; clrscr(); printf(\gets(str); printf(\gets(substr); puts (str); puts(substr); n=fun(str,substr); printf(\} 江苏省C等级考试(五) 一、选择题(本题共20道小题,共40分。) 1. 以下程序运行后,输出结果是 main( ) { char *s=\s+=2; printf(\,s); } A)cde B)字符c的ASCII码值 C)字符c的地址 D)出错 2. 下面程序的运行结果是 main() { char ch[7]={\int i,s =0 for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2) s=10*s+ch[i]-'0' printf(\,s); 30 scanf(\ p->next='\\0'; return(ph); } main() { struct list *head; head=creatlist();} 4. 设有以下程序: main() { int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl==&m; b=(*p1)/(*p2)+7; printf(\printf(\} 执行该程序后,a的值为_________,b的值为__________。 5. 以下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。 #include { int t; if(i for(i=0;i for(i=0;i 五、编程题(本题共2道小题,共20分。) 1. 计算1-1/2+1/3-1/4-...+1/99-1/100的值,并显示出来。 2. 从键盘输入一个5*5整型数组赋值,找出其中的最小值并显示出来。 江苏省C等级考试(五) 一、选择题(本题共20道小题,共40分。) 1. C 36 2. C 3. D 4. D 5. D 6. B 7. D 8. B 9. D 10. C 11. A 12. B 13. C 14. A 15. B 16. C 17. C 18. B 19. C 20. C 二、填空题(每空1分,共10分。) 1. 0 , 数据类型 2. 1 ,2 ,4 ,4 3. 函数 ,main() ,函数 4. a+i或*(a+i) 三、判断题(本题共10道小题,共10分。) 1. 错 2. 对 3. 对 4. 错 5. 对 6. 对 7. 错 8. 对 9. 错 10. 对 四、程序填空(本题共5道小题,每题4分,共20分。)1. (c=getchar()) , +65 或 +'A' 2. I , return 1 或 return (1) 3. struct list * , q 37 4. 0 , 7 5. i+1 , i 五、编程题(本题共2道小题,共20分。) 1. #include \ main() { int c,s; float ch; ch=0; for (c=1;c<100;c++) {if(c%2==0) s=-1; else s=1; ch+=s*(1/(float)c); } printf(\} 2. #include \ main() { int i=0,j=0,Max=0; int but[5][5]; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(\scanf(\Max=but[0][0]; for(i=0;i<5;i++) for(j=0;j<5;j++) if (Max>but[i][j]) Max=but[i][j]; printf(\最小值是%d\} 江苏省二级C语言考试一、选择题(本题共20道小题,共40分。) 1. 有下列程序 #include 38 { union { int k; char i[2]; }*s,a; s=&a; s->i[0]=0x39;s->i[1]=0x38; printf(\} 输出结果是 A)3839 B)3938 C)380039 D)390038 2. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(\ 为了把100和765.12分别赋给i和f,则正确的输入为 A)100<空格>765.12<回车> B)i=100,f=765.12<回车> C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车> 3. 设已有定义: char *st=\下列程序段中正确的是 A) char a[11], *p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a, st); C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st+2); 4. 设j为int型变量,则下面for循环语句的执行结果是 for(j=10;j>3;j--) { if(j%3)j--; --j;--j; printf(\} A)6 3 B)7 4 C)6 2 D)7 3 5. 以下程序的输出结果是 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)]; 39 for (i=0;i<3;i++) k=p[i]*2; printf(\} A)20 B)21 C)22 D)23 6. 若有以下说明: int w[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是 A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1] 7. 若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf(\else printf(\上面程序片段的输出结果是 A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果 8. 以下程序运行后,输出结果是 main( ) { int y=18,i=0,j,a[8]; do { a[i]=y%2;i++; y=y\\2; } while(y>1=1); for(j=i-1;j>=0;j--) printf(\,a[j]); printf(\} A)10000 B)10010 C)00110 D)10100 9. 以下叙述中不正确的是 A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量 10. 请读程序: #include 40
正在阅读:
江苏省计算机二级C语言试题笔试(8份)06-17
09电力电子期末总结05-28
电力相关范文02-19
计算机程序设计基础(C++)(景红版)课后全部习题及参考答案05-08
20141221黑苹果安装教程(主要针对华硕K46CM) - 图文09-21
中心传动管磨机主减速机的故障分析10-12
机械合金化制备Mo/Cu合金结构材料研究08-21
《不文集》经典的句子08-02
LS-DYNA第七章:材料模型04-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 江苏省
- 笔试
- 试题
- 二级
- 语言
- 计算机