C考试大纲.docx
《C考试大纲.docx》由会员分享,可在线阅读,更多相关《C考试大纲.docx(14页珍藏版)》请在冰豆网上搜索。
C考试大纲
《C语言程序设计》(240)考试说明
一、课程基本情况
课程名称:
C语言程序设计
课程代号:
240
考试方式:
笔试+机试
考试时间:
笔试120分钟机试60分钟
主要参考书:
《C语言程序设计》第2版,丁亚涛等编著,高等教育出版社2006版
《C语言程序设计实训与考试指导》第2版,丁亚涛等编著,高等教育出版社2006版
《C语言程序设计》,孙家启等编著,安徽大学出版社2005版
《C语言程序设计》第3版,谭浩强等编著,清华大学出版社2005版
二、课程内容与考核目标
按安徽省教育厅组编、安徽大学出版社出版的《全国高等学校(安徽考区)计算机基础教育教学(考试)大纲》(2005年第2版)《C语言程序设计》(240)教学(考试)大纲执行。
三、关于本次修改的说明
1.考试命题中的考核要求包括了解、理解、掌握、应用、技能、综合。
试题总体平均难易度为0.7-0.75,区分度为25-30%。
2.考试调试程序环境可以使用TurboC2.0,也可以使用VisualC++6.0。
3.上机考试软件可以自由选择
(2)中的两个平台之一。
4.使用VisualC++6.0作为调试程序平台时,请勿使用C++类及函数。
四、题型及样题
1.笔试
考试时间120分钟,主要考查C语言基本语法、阅读程序和编写程序的能力。
笔试题型和分值分配如下表:
题型
题数
每小题分值
题目说明
总分值
形式
选择
40
1
10题 计算机文化基础
30题 C语言程序设计
40
答题卡
填空
10
2
C语言程序设计
20
答题纸
阅读程序
4-5
4-5
C语言程序设计
20
程序设计
2-4
5-10
C语言程序设计
20
2.机试
考试时间60分钟,主要测试程序设计及调试的综合能力,以测试操作能力为主。
机试由各考点自主安排,但必须在考试办规定的时间内完成。
题型
题数
单元分值
题目说明
总分值
Windows
5
5
基本的Windows操作
25
改错
1
5
三处错误
15
填空
1
10
三个空
30
程序设计
1
30
语法15分,结果15分
30
笔试样题
一、选择题
1.计算机最主要的工作特点是________。
A)程序存储与自动控制B)高速度和高精度
C)可靠性和可用性D)具有记忆能力
2.下列各种进制的数中,最小的数是______。
A)(75)8B)(3F)16C)(62)10D)(111100)2
3.如果你正在使用计算机时突然断电,则_______中的信息全部丢失。
A)ROM和RAMB)RAMC)ROMD)CMOS
4.计算机软件通常包括________。
A)算法及数据结构B)程序和数据结构
C)程序、数据及相关文档D)文档及数据
5.在windows中,将当前窗口作为图片复制到剪贴板时,应按________键。
A)Alt+PrintScreenB)Ctrl+InsC)PrintScreenD)Alt+Esc
6.多媒体计算机(MPC)是指能__________的计算机。
A)接收多种媒体信息B)输出多种媒体信息
C)将多补媒休信息融为一体进行处理D)播放CD音乐
7.当用户在浏览网页时,若鼠标指针变成手状,通常表明此处有________。
A)图片B)超级链接C)声音D)E-mail地址
8.目前,________被认为是最有效的信息安全控制方法。
A)设置口令B)设置用户权限
C)限制对计算机的物理接触D)数据加密
9.下列方式中,________一般不会感染计算机病毒。
A)在网络上下载软件,直接使用
B)使用来历不明软盘上的软件,以了解其功能
C)在本机的电子邮箱中发现有奇怪的邮件,打开看看究竟
D)安装购买的正版软件
10.下列选项中,合法的IP地址是____________。
A)210.45.16B)210.45.266.68
C)210.45.66.8C)210,45,203,243
11.____是合法的用户自定义标识符。
A)ah-spksB)doubleC)D)_myapple
12.一个C程序的执行是从____________。
A)本程序的main函数开始,到main函数结束。
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
13.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是_________。
A)program.bak和program.objB)program.obj和program.exe
C)program.ext和program.cD)program.bak和program.exe
14.执行语句:
inta=1,b=0,c;c=a>0||++b;b的值最后为_____。
A)0B)1C)2D)不确定
15.在C程序中,用_____表示逻辑值“真”。
A)1B)非0的数C)非1的数D)大于0的数
16.若变量已正确定义,语句“if(x>y)z=0;elsez=1;”和______等价。
A)z=(x>y)?
1:
0;B)z=x>y;
C)z=x<=y;D)x<=y?
0:
1;
17.设变量定义为inta,b;,执行下列语句时,输入_____,则a和b的值都是10。
scanf("%d,%d",&a,&b);
A)1010B)10,10C)a=10b=10D)a=10,b=10
18.下列程序执行后的输出结果是______。
main()
{
intx='d';
printf("%c\n",'A'+(x-'a'+1));
}
A)GB)HC)ED)J
19.设有说明语句:
chara='\123';则变量a_____。
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法
20.有如下程序段:
inta=3,b=15;
floatf=7.5;
printf("%.1f",(float)a+b/2+(int)f%3);
执行该程序段后,运算结果为:
A)11.5B)11.0C)11D)12.0
21.若变量ch为char类型,能正确判断出ch为大写字母的表达式是____。
A)'A'<=ch<='Z'B)(ch>='A')||(ch<='Z')
C)('A'<=ch)and('Z'>=ch)D)(ch>='A')&&(ch<='Z')
22.以下程序的输出结果是
#include
#include
main()
{
charst[20]="2008\0\t\\";
printf("%d,%d\n",strlen(st),sizeof(st));
}
A)7,7B)4,20C)10,20D)20,20
23.执行语句:
inta;a='1'+1.5;后,正确的叙述是______。
A)a的值是字符'3'B)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符'1'的ASCII值加上1。
24.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是_____。
A)均为2个字节B)0至65535C)-32768至32767D)-256至255
25.执行语句:
main()
{
inti=3,j;
j=++i+i++;
printf("%d\n",j);
}
A)6B)7C)8D)9
26.若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是____。
A)-5B)–40C)–15D)不确定
27.不正确的赋值或赋初值的方式是______。
A)charstr[]="Hello2006!
";B)charstr[20];str="Hello2006!
";
C)char*p="Hello2006!
";D)char*p;p="Hello2006!
";
28.数组定义为inta[10][10];则数组a有______个数组元素。
A)100B)81C)20D)121
29.在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。
A)intB)doubleC)voidD)char
30.整型变量x和y的值相等且为非0值,则下面表达式中结果为零的是_____。
A)x||yB)x|yC)x&yD)x^y
31.以下叙述正确的是_____。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
32.有以下循环:
inti;
for(i=0;i<10;i++)i++;
循环次数为_____。
A)10B)5C)6D)7
33.语句while(!
end);中的条件!
end等价于_____。
A)end==0B)end!
=1C)end!
=0D)~end
34.运行程序:
#defineTap(X)2*X+1
main()
{
inta=6,k=2,m=1;
a+=Tap(k+m);
printf("%d\n",a);
}
则输出结果是
A)12B)13C)7D)6
35.若有如下定义:
inta=211,*b=&a;
则printf("%d\n",*b);的输出结果为_____。
A)无确定值B)a的地址C)212D)211
36.若有定义语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
则不是对a数组元素的正确引用是_____。
A)a[p-a]B)*(&a[i])C)*(*(a+i))D)*p
37.以下语句运行后结果为______________。
char*st="howareyou";
printf("%s\n",st+4)
A)HowareyouB)areyou
C)youD)空串
38.以下语句中,指针p的data域正确的引用方式为_____。
structnode
{
intdata;
structnode*lchild,*rchild;
}Btree;
Btree*p;
A)p.dataB)p->dataC)(*p)->dataD)p[data]
39.函数调用语句fseek(fp,10,1)的含义是_____。
A)将文件指针移到距离文件头10个字节处
B)将文件指针移到距离文件尾10个字节处
C)将文件指针从当前位置后移10个字节
D)将文件指针从当前位置前移10个字节
40.以下关于文件的说法错误的是_____。
A)C系统把文件当作一个“流”,按字节进行处理
B)文件在读写之前必须打开,读写结束必须关闭
C)feof函数可判断文件指针是否处于文件结束位置,如是则返回值为0,否则为1
D)文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写
二、填空题
1.执行语句:
inta=0,b=1;则a++>b?
++a:
b值是_____。
2.程序可以分为三种基本结构,即___________、分支结构、循环结构。
3.条件判断语句包括if语句和________________语句。
4.printf("%5.4f\n",123456.12345);输出为_____________。
5.表达式1<0<2的值是______。
6.inta=-2;printf("%u",a);输出为_________。
7.设有以下定义:
typedefstruct
{
chart[10];
union{inta,floatf}ufo;
}String;
Strings;
strcpy(s.t,"12345");则sizeof(s)的值为______。
8.下面的程序输出结果是_______。
#include
intsum(intn)
{
inti,s=0;
for(i=1;iif(i%10==9)s=s+i;
returns;
}
main()
{printf("%d",sum(69));}
9.以下语句执行后输出_______。
main()
{
int*p;
chars[]="HappyNewYear!
",*c;
p=s+6;c=++p;
printf("%c",*c);
}
10.C文件按编码方式分为ASCII文件和________________。
三、阅读程序题
1.以下程序的输出结果是_________
#include"stdio.h"
main()
{
inti,j;
for(i=0;i<=3;i++)
{
for(j=0;j
printf("%d",i);
printf("*\n");
}
}
2.以下程序的输出结果是_________
#include"stdio.h"
intf(intc)
{
staticinta=10;
intb=++a;
return(a+b+c);
}
main()
{printf("%d",f(f(5)));}
3.以下程序的输出结果是_________
#include"stdio.h"
voidf(int*x,inty)
{--*x;y++;}
main()
{
intx=3,y=0;
f(&x,y);
printf("%d,%d",x,y);
}
4.以下程序的输出结果是_________
#include"stdio.h"
main()
{
char*s={"Computer-Level-Test"},*p;
for(p=s;*p!
=NULL;p++)
{
if(*p=='-')printf("\n");
else
if(*p<='Z'&&*p>='A')printf("%c",*p+'a'-'A');
elseprintf("%c",*p);
}
}
5.以下程序的输出结果是_________
#include"stdio.h"
intfun(intn)
{
if(n<10)returnn;
else
return(n%10)*fun(n/10);
}
main()
{
printf("%d",fun(218));
}
四、程序设计题
1.编程输出100以内所有6的倍数及它们的和。
2.已知字符串chars[50]="Iamstudent.",请编写程序将字符a插入到student之前,结果为"Iamastudent."。
程序框架如下
#include
main()
{
chars[50]="Iamstudent.";
…
}
3.编写程序打印以下图形:
(必须使用循环结构,直接输出不给分)。
1
23
456
7890
上机考试样题
一、操作题
******本操作系统操作题共有5小题******
[警告:
考生不得删除考生文件夹下与试题无关的文件或文件夹,否则将影响考生成绩]
在考生文件夹下进行以下操作:
1.将其中的RED.BMP文件删除。
2.将其中的文件GOOD.TXT改名BEST.TXT
3.将其中的GOODBYE文件夹删除。
4.在SCORE文件夹下建立一个新文件夹NEWFILE
5.将文件BEST.TXT复制到新文件夹NEWFILE中。
二、改错题
注意事项
1.标有$ERROR?
$的程序行有错,请直接在该行修改;
2.请不要删除或修改$ERROR?
$错误标志;
3.请不要将错误行分成多行;
4.请不要修改错误语句的结构或其中表达式的结构,如错误语句:
if((A+B)==(X=X+Y))...正确形式为if((A+B)!
=(X=X+Y))...,若改成:
if((B+A)!
=(X=X+Y))...或if((X=X+Y)!
=(A+B))...或
if((A+B)!
=(X+=Y))...等形式均不得分;
题目:
以下程序能够将字符串str1和字符串str2合并成一个新字符串str。
#include
main()
{
charstr1[30],str2[20],str[60];
inti=0,j=0;
printf("Enterfirststring:
");
gets(str1);
printf("Entersecondstring:
");
gets(str2);
while(str1[i])
{str[i]=str1[i];i++;}
while(str2[j])
{str[i++]=str2[j];
i++;/*$ERROR1$*/
}
str[i]="\0";/*$ERROR2$*/
printf("str=%c\n",str);/*$ERROR3$*/
}
三、填空题
注意事项
1.请删除标有$BLANK?
$的程序行上的下划线,将正确的答案填在原下划线处
2.请不要删除$BLANK?
$错误标志
3.请不要将需要填空的行分成多行
4.请不要修改任何注释
题目:
以下程序是将从键盘输入的字符串逆序存放,然后输出,(如:
输入ABCD1A,输出A1DCBA)。
#include
#include
main()
{
chars[81],t;
inti,j,n;
gets(s);
n=strlen(s);
___/*$BLANK1$*/
j=n-1;
while(___)/*$BLANK2$*/
{
t=s[i];s[i]=s[j];s[j]=t;
i++;
___/*$BLANK3$*/
}
printf("%s",s);
}
四、编程题
注意事项
1.请不要修改题目中已经给出的任何语句,否则可能本题没有分数
2.程序编辑确定后,必须运行一次
3.只能在主函数main()和PRINT()之间的的空白处编写程序
4.题目中已经给出中间或最后输出的语句,请不要修改已经给出的语句,否则可能本题没有分数
题目:
计算1~500之间(即从1到500)的全部"同构数"之和。
所谓"同构数"是指一个数。
它出现在它的平方数的右端。
如6的平方是36,6出现在36的右端,6就是同构数。
输出格式:
367
考生打开的program.c为:
#include
PRINT(ints)
{
FILE*out;
if((out=fopen("result.txt","w+"))!
=NULL)
fprintf(out,"n=%d",s);
fclose(out);
}
main()
{
/*考生在此设计程序*/
PRINT(s);
}