{ FILE *fp;int i=20,j=30,k,n; fp=fopen(“d1.dat”,“w”); fprintf(fp,“%d\\n”,i);fprintf(fp,“%d\\n”,j); fclose(fp); fp=fopen(“d1.dat”,“r”); fscanf(fp,“%d%d”,&k,&n);printf(“%d %d\\n”,k,n); fclose(fp);}
该程序运行后的输出结果是_______.( 13.4) A)20 30 B)20 50 C)30 50 D)30 20
二、多选题(共20小题,每题2分,共40分)
1. 下列符号串中,不属于C语言合法标识符的有_____.( 3.2) A)_1_2_3 B)a-b-c C)int D)9cd
2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有_______.(假设k>0)( 5.3) A)k%2 B)k%2= =1 C)(k%2)!=0 D)!k%2= =0 3. 已有定义 int a=-2;和输出语句printf(“%8lx”,a);下列叙述不正确的有_______.(知今识点4.5)
A) 整型变量的输出形式只有%d一种
B) %x是格式符的一种,它可以适用于任何一种类型的数据
C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D) %8lx不是错误的格式符,其中数字81规定了输出字段的宽度 4. 下列选项中,没有构成死循环的程序段有_____.( 6.7) A)int i=100; B)for( ; ; ) while(1) { i=i0+1;
if(i>=100)break;}
C)int k=0; D)int s=36; do { ++k;} while(k>=0); while(s);——s; 5. t为int类型,进入下面的循环之前,t的值为0: while(t=1) { ???。}
则下列叙述不正确的有________.( 6.3)
A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)循环有可能是个无限循环 6. 下列判断正确的是_______.( 10.3) A) char *a=“china”;等价于 char *a;*a=“china”;
B) char str[6]={“china”};等价于char str[ ]= {“china”}; C) char *s=“china”;等价于char *s;s=“china”; D) char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;
7. 若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有_____.( :6.7) A)i=1;s=1; B)i=0;s=0; do do
{ s=s+i;i++; { i++; s=s+i; while(i<5); while(i<5); C)i=1;s=0; D)i=0;s=0; do do
{ s=s+i;i++; { s=s+i; i++;
- 16 -
while(i<6); while(i<=5);
8. 下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是______.( 10.2) main()
{ int a[10]={5,2,9,6,7,1,12,8,23,0},*p=a,i; for(i=0;i<10;i++,p++) if(______) *a=*p ; printf(“%d”,*a); }
A)p>a B)*p
A) s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址 B) s是指针数组名,它含有两个元素分别指向字符型一维数组
C) s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素 D) s数组的两个元素中分别存放了字符'a'和'A'的地址
10. 以下有关字符串赋值、赋初值的语句错误的有_______.( 10.4) A)char sz[2][40];sz[1]=“string1”; B)char *sz[2];sz[1]=“string2”; C)char sz[][40]=“string3”; D)char *sz[ ]=“string4”; 11. 若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_______.(0<=i<4,0<=j<9)( 10.3)
A)*(&a[0][0]+9*i+j) B)*(a+i)(j) C)*(*(a+i)+j) D)*(a[i]+j) 12. 若有定义:char *st=“how are you!”;下面程序段正确的有_____.( :7.3) 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); 13. 设有以下说明语句: Struct stu { int a ; float b ; }stutype ;
则下列叙述正确的有_______.( 11.2) A) struct是结构体类型的关键字
B) struct stu是用户定义的结构体类型 C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名
14. 若已建立如图所示的单向链表:
则下列选项中能将s所指的结点插入到链表尾部,构成新的单项链表的语句组有_______.( 11.7)
- 17 -
A)s->link=a->link->link ;a->link->link=s; B)a=a->link ; a->link=s ;s->link=NULL; C)s->link=NULL ;a=(*a)。link ; (*a)。link =s; D)a=a->link ; s->link=a->link;a->link=s->link;
15. 设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______.( 10.3) A)for(i=0;i<6;i++)printf(“-”,*(p++)); B)for(i=0;i<6;i++)printf(“-”,*(p+i)); C)for(i=0;i<6;i++)printf(“-”,*p++); D)for(i=0;i<6;i++)printf(“-”,(*p)++); 16. 下列叙述正确的有_____.( 8.5) A) 函数可以嵌套定义,但不能嵌套调用 B) 函数可以嵌套调用,也可以嵌套定义 C) 函数不可以嵌套定义,但可以递归调用 D) 函数可以嵌套调用,但不能嵌套定义 17. 下列叙述不正确的有_____.( 8.8)
A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区 B)局部变量只在本函数范围内有效,形式参数属于局部变量
C)局部变量如没有被说明为静态的存储类别,则会被分配动态存储空间,存储在动态存储区中 D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它
18. 若变量已正确定义,要求程序段完成求5!的计算,下列选项中不能完成此操作的程序段有____( 6.7)
A)for(i=1,p=1;i<=5;i++)p*=i; B)for(i=1;i<=5;i++){p=1;p*=i;} C)i=1;p=1;while(i<=5) p*=i;i++;
D)i=1;p=1;do { p*=i;i++;} while(i<=5);
19. 若有以下说明,则对strcpy库函数的调用不正确的有_______.( 10.4) char *str1=“copy”,str2[10],*str3=“abcde”,*str4,*str5=“hijk” A)strcpy(str2,str1); B)strcpy(str3,str1); C)strcpy(str4,str1); D)strcpy(str5 ,str1);
20. 下列选项中可以将变量n清零的表达式有_______.( 12??2) A)n=n&~n B)n=n&0 C)n=n^n D)n=n|n
第四届全国ITAT教育工程就业技能大赛复赛试题------C语言程序设计(A卷)
请考生仔细阅读并严格遵守题目中关于文件保存和命名的要求。
请务必按照试卷要求为文件命名。
考生答题完毕后,首先创建以“准考证号”命名的文件夹(形式如:433034683),并将考试结果
- 18 -
严格按题目上的命名要求进行命名并直接保存在该文件夹下。
注意:考生不得在该文件夹下创建任何子文件夹,所有考试结果均直接保存在该文件夹根目录下。
然后选中整个文件夹,用Winrar压缩工具打包后存放在本考场指定的考试结果存放地址,经监考老师确认上传无误后方可离开考场。
注意:在提交答案时,请务必选中上述存放作品的文件夹(如前面创建的433034683文件夹,而不是文件夹下的全部文件)进行压缩,在完成答案提交后,请确保上述压缩包仍保存在本地计算机中。
请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。
注意:凡违反上述规定的考生,其成绩一律按零分处理。
题目命名要求:请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.C” )。
重要提示:(1)由于时间有限,请考生首先保证编写的程序在Turboc2.0英文版环境下可以编译通过并执行,在此基础上保证完成考题要求的全部功能,以免因编译不通过影响考生的考试成绩;
(2)由于编程算法不同,提供的库函数不会包含考生需要的所有内容,但保证所提供函数一定能够完成本考题全部功能。
1、编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。(15分)
2、输入年、月、日,输出该日期是该年的第几天。(25分)
3、利用数组实现数据的存储。将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。(20分)
4、输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。(20分)
5、用指针实现:任意输入20个数,将它们按照从大到小的顺序输出。(20分)
附加题
6、编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。(50分)
(提示:可能用到以下库函数:
malloc(),功能:分配size字节的存储区,
用法:(类型 *)malloc(size *sizeof(你要定义的类型));包含于
- 19 -
feof(),功能:检测文件是否结束
用法: int feof(fp)
FILE *fp;包含于
第五届全国ITAT教育工程就业技能大赛预赛试题-----C语言程序设计 一、单选题(共计60题)
(1)在下述程序中,if (i>j) 语句共执行的次数是( ) main()
{ int i=0,j=14,k=2,s=0; for(;;) { i+= k ; if(i>j) { printf(“%d”,s); break ; } s+=i ; } } A、6 B、9 C、7 D、12
(2)若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是( ) A、\ B、\ C、\ D、\
(3)下列程序的输出结果是( ) struct student { int a, b, c; }; main()
{ struct student stu[2]={{2,3,4},{5,6,7}}; int t; t=stu[0].a+stu[1].b%stu[0].c; printf(\); } A、0 B、1 C、4 D、5
(4)对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是( ) A、f=(f*1000+0.5)/1000.0 B、f=(f*1000+0.5)/1000 C、f=(int)(f*1000+0.5)/1000.0 D、f=(f/1000+0.5)*1000
- 20 -