2011陕西省C语言版高级
- 格式:pdf
- 大小:91.03 KB
- 文档页数:5
2011年陕西省全国计算机等级
考试(NCRE)报考简章
一、考试日期
2011年上半年考试时间定于3月26日至30日,下半年定于9月 17 日至 21日。
第一天上午笔试,上机考试从笔试的当天下午开始。
二、考试科目
考生可登录中国教育网()查询教材目录和有关考试大纲。
三、报名、收费和相关要求
(一)2011年上半年考试报名时间定于2010年12月20日至30日;下半年定于2011年6月1日至10日。
(二)收费标准按陕价费调发〔2000〕44号文件规定执行。
(三)考生报名时须持本人身份证(军官证、士官证),无身份证者一律不得报考。
(四)考点在采集考生报名信息时,必须坚持考生确认制度。
考生对自己的报名信息负责,报名信息一经确认不再纠错。
考点必须对上报数据进行认真核对,确保信息准确无误。
四、考点设置
二〇一一年二月。
2011年10月全国自考高级语言程序设计试题高级语言程序设计(一) 试题课程代码:00342一、单项选择题(本大题共1 5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( )A.数字B.字母或数字C.数字或下划线D.字母或下划线2.运算符优先级符合由高到低排列的一组是( )A.+、!=、&&、=B.&&、!=、+、=C.!=、+、=、&&D.&&、=、!=、+3.转义字符中正确的是( )A.'\'B. '\xyz'C. '\\'D. '\820'14.下列程序段执行后x、y和z的值分别是( )int x=10,y=20,z=30;if(x>y)z=x;x=y;y=z;A.10,20,30B.20,30,30C.20,30,10D.20,30,205.下列程序段执行后的输出结果是( )int k=4,a=3,b=2,c=l;printf("%d\n",k<a? k:c<b? c:a);A.1B.2C.3D.46.关于for(表达式1;表达式2;表达式3),叙述正确的是( )A.表达式1不可以缺省B.表达式2不可以缺省C.表达式3不可以缺省D.三个表达式都可以缺省7.设int *p[4];,则标识符p是( )A.整型数组名B.指针数组名C.指针函数名D.指向整型变量的指针8.在循环结构中,continue语句的作用是( )A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环9.数组定义及初始化正确的是( )A.char a[5]={};B.int a[5]={0,1,2,3,4,5};C.char a={"string"};D.char a[]={'0','1','2','3','4','5'};1O.设int m;,与while(!m)等价的是( )A.while(m!=0)B.while(m==1)C.while(m==O)D.while(m!=1)11.设char s1[]="12345",s2[]="1234";,执行语句printf("%d\n",strlen(strcpy(s1,s2)));后的输出结果是( )A.4B.5C.9D.1O12.下列不属于C语言数据类型的保留字是( )A.realB.voidC.floatD.double13.设int i,j=7,*p=&j;,与赋值语句i=j;等价的是( )A.i=&p;B.p=*&j;C.p=&j;D.i=*p:14.正确表示数学关系式x≥y≥z的C语言表达式是( )A.x>=y>=zB.(x>=y)&&(y>=z)C.(x>=y)&(y>=z)D.(x>=y)||(y>=z)15.设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( )A.2B.1OC.11D.12二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
2011年9月全国计算机等级考试二级笔试试卷一、选择题A)算法就是程序B)设计算法时只需考虑数据结构的设计C)设计算法时只需考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表叙述中,正确的是A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进入插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。
下现属于应用软件的是A)统(5)该系统总体结构图的深度是A)7 B)6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式R S T(9)有三个关系R 、S 和T 如下:则由关系R 和S 得到关系T 的操作是 A)自然连接 B)差C)交 D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承 B)自顶向下 C)模块化 D)逐步求精(11)以下叙述中错误的是A)C 语言编写的函数源程序,其文件名后缀可以是.C B)C 语言编写的函数都可以作为一个独立的源程序文件 C)C 语言编写的每个函数都可以进行独立的编译并执行 D)一个C 语言程序只有一个主函数(12)以下选项中关于程序模块化的叙述错误的是A)把程序分成若干相对独立的模块,可便于编码和调试B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序 (13)以下选项中关于C 语言常量的叙述错误的是A)所谓常量,是指在程序运行过程中,其值不能被改变的量 B)常量分为整型常量、实型常量、字符常量和字符串常量 C)常量可分为数值常量和非数值常量 D)经常被使用的变量可以定义成常量(14)若有定义语句: int a=10; double b=3.14; ,则表达式'A'+a+b 的值的类型是 A)char B)int C)double D)float (15)若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z 的值为 A)1.9 B)1 C)2 D)2.4(16)若有定义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b 的输入数据是A)3 5 B)3,5 C)3;5 D)35(17)若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为 A)0和1B)0和20C)10和1D)10和20(18)有以下程序#include <stdio.h> main( ){ int a=1, b=0;if (--a) b++;else if(a==0) b+=2;else b+=3;printf("%d\n",b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是A) if(a) printf("%d\n", x); else printf("%d\n",y);B) if(a==0) printf("%d\n", y); else printf("%d\n",x);C) if(a!=0) printf("%d\n", x); else printf("%d\n",y);D) if(a==0) printf("%d\n", x); else printf("%d\n",y);(20)有以下程序#include <stdio.h>main( ){ int a=7;while (a--);printf("%d\n",a);}程序运行后的输出结果是A)-1 B)0 C)1 D)7(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A)printf("%c\n",'a'-32); B)printf("%d\n",'A')C)printf("%c\n",65); D)printf("%c\n",'B'-1);(22)有以下程序(注:字符a的ASCII码值为97)#include <stdio.h>main( ){ char *s={"abc"};do{ printf("%d",*s%10); ++s; }while (*s);}程序运行后的输入结果是A)abc B)789 C)7890 D)979899(23)若有定义语句: double a,*p=&a; 以下叙述中错误的是A)定义语句中的 * 号是一个间址运算符B)定义语句中的 * 号只是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p#include <stdio.h>double f(double x);main( ){ double a=0; int i;for (i=0; i<30; i+=10) a+=f( (double)i);printf("%5.0f\n",a);}double f(double x){ return x*x+1; }程序运行后的输出结果是A)503 B)401 C)500 D)1404(25)若有定义语句: int year=2009, *p=&year;,以下不能使变量year中的值增至2010的语句是A)*p+=1; B)(*p)++; C)++(*p); D)*p++;(26)以下定义数组的语句中错误的是A)int num[]={1,2,3,4,5,6} B)int num[][3]={{1,2},3,4,5,6}; C)int num[2][4]={{1,2},{3,4},{5,6}}; D)int num[][4]={1,2,3,4,5,6};(27)有以下下程序#include <stdio.h>void fun(int *p){ printf("%d\n", p[5]); }main( ){ int a[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是A)5 B)6 C)8 D)9(28)有以下程序#include <stdio.h># define N 4void fun(int a[][N], int b[]){ int i;for (i=0; i<N; i++) b[i]=a[i][i]-a[i][N-1-i];}main( ){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i;fun(x, y);for (i=0;i<N; i++) printf("%d,",y[i]); printf("\n");}程序运行后的输出结果是A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3,int fun(char *x, char *y){ int n=0;while ( (*x==*y) && *x!='\0') {x++; y++; n++; }return n;}函数的功能是A)查找x和y所指字符串中是否有'\0'B)统计x和y所指字符串中最前面连续相同的字符个数C)将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数(30)若有定义语句: char *s1="OK", *s2="ok";,以下选项中,能够输出"OK"的语句是A)if (strcm(s1,s2)==0 puts(s1); B)if (strcm(s1,s2)!=0 puts(s2);C)if (strcm(s1,s2)==1 puts(s1); D)if (strcm(s1,s2)!=0 puts(s1);(31)以下程序的主函数中调用了在其前面定义的fun函数#include <stdio.h>∶main( ){ double a[15],k;k=fun(a)∶}则以下选项中错误的fun函数首部是A)double fun( double a[15]) B)double fun( double *a)C)double fun( double a[]) D)double fun( double a)(32)有以下程序#include <stdio.h>#include <string.h>main( ){ char a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};int i,j; char t[10];for ( i=0; i<4; i++)for (j=i+1; j<5; j++)if( strcmp(a[i], a[j])>0){ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }puts(a[3]);}程序运行后的输出结果是A)beijing B)china C)welcome D)tiananmen(33)有以下程序#include <stdio.h>int f(int m){ static int n=0;n+=m;return n;}main( ){ int n=0;printf("%d,", f(++n));printf("%d\n", f(n++));}程序运行后的输出结果是A)1,2 B)1,1 C)2,3 D)3,3(34)有以下程序#include <stdio.h>main( ){ char ch[3][5]={"AAAA","BBB","CC"};printf( "%s\n", ch[1] );}程序运行后的输出结果是A)AAAA B)CC C)BBBCC D)BBB(35)有以下程序#include <stdio.h>#include <string.h>void fun(char *w, int m){ char s,*p1, *p2;p1=w; p2=w+m-1;while (p1<p2) { s=*p1; *p1=*p2; *p2=s; p1++; p2--; }}main( ){ char a[]="123456";fun( a, strlen(a) ); puts(a);}程序运行后的输出结果是A)654321 B)116611 C)161616 D)123456(36)有以下程序#include <stdio.h>#include <string.h>typedef struct {char name[9]; char sex; int score[2]; } STU;STU f(STU a){ STU b={"Zhao",'m',85,90};int i;strcpy(, );a.sex=b.sex;for (i=0; i<2; i++) a.score[i]=b.score[i];return a;}main( ){ STU c={"Qian",'f',95,92}, d;d=f(c);printf("%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);printf("%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Qian,f,95,92 B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92 B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include <stdio.h>main( ){ struct node {int n; struct node *next;} *p;struct node x[3]={{2,x+1}, {4,x+2}, {6, NULL}};p=x;printf("%d,", p->n );printf("%d\n",p->next->n );}程序运行后的输出结果是A)2,3 B)2,4 C)3,4 D)4,6(38)有以下程序#include <stdio.h>main( ){ int a=2, b;b=a<<2; printf("%d\n",b);}程序运行后的输出结果是A)2 B)4 C)6 D)8(39)以下选项中叙述错误的是A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内C)C程序函数中定义的自动变量,系统不自动赋确定的初值D)C程序函数的形参不可以说明为static型变量(40)有以下程序#include <stdio.h>main( ){ FILE *fp;int k,n,i,a[6]={1,2,3,4,5,6};fp = fopen("d2.dat","w");for (i=0; i<6; i++) fprintf(fp, "%d\n",a[i]);fclose(fp);fp = fopen("d2.dat","r");for (i=0; i<3; i++) fscanf(fp, "%d%d", &k, &n);fclose(fp);printf("%d,%d\n", k, n);}程序运行后的输出结果是A)1,2 B)3,4 C)5,6 D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
陕西省高等教育自学考试《高级语言程序设计》课程实践环节考核报告准考证号:012322566544 考生姓名:***所学专业:计算机信息管理专业专业层次:大专考核地点:西安电子科技大学考核时间:2010年11月18日主考院校:西安电子科技大学高级语言程序设计一.实验目的1.掌握C语言的基本数据类型,熟悉不同类型数据之间运算和赋值的转换规律,以及字符型、整型数据之间的混合使用。
2.掌握运算符的优先级和结合方向,特别是增一(++)和减一(--)运算符的使用。
3.掌握C程序的编辑、编译、连接和运行的过程。
二.实验环境:硬件:cpu:2.4G; 内存:256m.; 硬盘:40G; 显示器:17寸.软件:操作系统:windows xp ; 实验环境:turboC; 编辑:word三.实验内容实验一数据类型、运算符、表达式和数据的输入输出手工分析程序中各变量的输出值,运行程序验证手工分析的结果。
1.关系表达式、逻辑表达式、条件表达式的计算。
源代码:main( ){int a=5,b=4,c=3,i;i=a>b>c;printf ("%d, %d \n", i, a || b + c&& c-b);a=b=c=2;i=a>b&&(c=0);printf("%d,%d,%d,%d\n",i,a,b,c);i=(a==b?(c=0):a>b?(c=1):(c=-1));printf ("%d,%d,%d,%d\n", i,a,b,c);}运行结果:0,10,2,2,20,0,2,0运行程序:实验二基本语句的使用1.从键盘输入一个字符,判断是字母、数字还是其它字符。
将程序输出部分补充完整。
源程序:main(){ char ch;scanf("%c",&ch);if('a'<=ch&&ch>='z'||'A'<=ch&&ch>='Z')printf("%c is letter.\n",ch);else if('0'<=ch&&ch>='9')printf("%c is digit.\n",ch);else printf("%c is other.\n",ch);}输出结果:从键盘上输入:3输出结果:3 is other输入: A输出结果:A is digit输入: a输出结果:a is letter程序运行:实验三数组及指针的应用1.用下标和指针对一维数组进行输出。
1、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。
int LeafKlevel(BiTree bt, int k) //求二叉树bt 的第k(k>1) 层上叶子结点个数 {if(bt==null || k<1) return(0);BiTree p=bt,Q[]; //Q是队列,元素是二叉树结点指针,容量足够大int front=0,rear=1,leaf=0; //front 和rear是队头和队尾指针, leaf是叶子结点数 int last=1,level=1; Q[1]=p; //last是二叉树同层最右结点的指针,level 是二叉树的层数while(front<=rear){p=Q[++front];if(level==k && !p->lchild && !p->rchild) leaf++; //叶子结点if(p->lchild) Q[++rear]=p->lchild; //左子女入队if(p->rchild) Q[++rear]=p->rchild; //右子女入队if(front==last) {level++; //二叉树同层最右结点已处理,层数增1last=rear; } //last移到指向下层最右一元素if(level>k) return (leaf); //层数大于k 后退出运行}//while }//结束LeafKLevel2、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均值排列与按每行元素之和排列是一个意思。
所以应先求出各行元素之和,放入一维数组中,然后选择一种排序方法,对该数组进行排序,注意在排序时若有元素移动,则与之相应的行中各元素也必须做相应变动。
2011 模拟c语言高职注意:本套模拟题主要模拟命题形式与考核范围。
真实竞赛题的数量、难度可能与此套模拟题有差异。
说明:本试卷包含两种题型:“代码填空”与“程序设计”。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不多于一条语句(即不能出现分号)。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
1.代码填空(满2分)形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。
请补充空白的部分。
char buf[] = "abcde11edcba";int x = 1; //x=1是回文串for(int i=0; i<strlen(buf)/2; i++)if(__buf[i]!=buf[(strlen(buf)-1)-i]_________________) // strlen(buf)-1是字符串中最后一个字符(不算’\0’)的序号{x = 0;//x=0不是回文串break;}printf("%s\n", x ? "是":"否");//x=1是回文串,x=0不是回文串2.代码填空(满分3分)下列代码把一个二进制的串转换为整数。
请填写缺少的语句;char* p = "1010110001100";int n = 0;for(int i=0;i<strlen(p); i++) //按权展开多项式求和{n = ___n+(p[i]-48)*pow(2,strlen(p)-1-i)_______________;// n = (n<<1) + (*(p+i)-48);}printf("%d\n", n);3.代码填空(满分3分)假设a,b,c是3个互不相等的整数。