2010年c语言试卷

合集下载

2010级C语言(A卷答案)

2010级C语言(A卷答案)

天津工业大学2010~2011学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下各标识符中,能作为变量名使用的是【1】。

A) A#C B) my_x C) main D) ab*2.下列叙述中错误的是【2】。

A) 一个C语言程序必须有main()函数B) C语言规定函数内的每个语句以分号结束C) C语言程序书写格式规定,一行内只能写一个语句D) main()函数可以放在程序开头,也可以放在程序末尾3.设有变量定义语句char ch; 下列赋值表达式中,正确的是【3】。

A) ch='a' B) ch="a" C) ch='97' D) ch="97"4.执行下列程序段后,输出结果为【4】。

int x=023;printf("%d", x--);A)18 B) 19 C) 23 D) 245.表达式10!=9的值为【5】。

A) 1 B) 0 C) True D) False6.设有变量定义语句int x=5,y; 则表达式y=2.75+x/2的值是【6】。

A) 4 B) 5 C) 4.75 D) 5.257.下列选项中,所有变量均已正确说明且有初始值,则错误的C语句是【7】。

A) m++; B) m=a==b; C) a=b=c+2; D) a=b+c=2;8.设int i=0,j=2,k=3;则表达式(i+k)&k|j+i的值是【8】。

A) 0 B) 1 C) 2 D) 39.假设所有变量均为整型,执行表达式x=(y=4,z=16,k=32)后x的值是【9】。

A) 4 B)16 C) 32 D) 5210.有输入语句scanf("a=%d,b=%d,c=%d",&a,&b,&c);为了使a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是【10】。

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案一、选择题(1)下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是B A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是 C A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于B A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是 A A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是B A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是 D A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 C A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序 C #include<stdio.h>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是C A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是 D A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 A A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是B A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是C A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<e)?a:e):((b<e)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;20)有以下程序 A #include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

201012真题C语言(含答案)

201012真题C语言(含答案)

0124、以下叙述正确的是()。

A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。

A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。

A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。

A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。

A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。

A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。

A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。

A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。

A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。

A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。

2010c语言上机题库100套

2010c语言上机题库100套
void fun( int *a, int *b)
{ int i, j ;
for(i = 0 ; i < M ; i++) b[i] = 0 ;
for(i = 0 ; i < N ; i++) {
j = a[i] / 10 ;
if(j > 10) b[M - 1]++ ; else b[j]++ ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1 && n < 170 )
/************found************/
result *= n--
return result ;
第1套:
1.填空题
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数为:739。
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
/**********found**********/
{ t=*n % __1__;
/**********found**********/
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*Leabharlann /10; } 第2套:

c语言计算机考试真题 2010

c语言计算机考试真题 2010

根据历法知识,闰年是:输入的年份能被4整除,但不能被100整除,或者,能被400整除,结合C语言知识,编程实现一个年份是不是闰年#include<stdio.h>main(){int year;while(scanf("%d",&year),year){if(!(year%4!=0||year%100==0 &&year%400 !=0))printf("%d 年是闰年\n",year);elseprintf("%d 年不是闰年\n",year);}}第二题:编程实现求1!+2!+3!+4!......n!的值#include<stdio.h>void main(){int sum,i,n,j,k;sum=0;scanf("%d",&n);for(i=n;i>0;i--){k=1;for( j=i;j>0;j--){k=k*j;}sum+=k;}printf("%d",sum);}第三题:求两个正整数的最大公约数#include<stdio.h>main(){int a,b,c,t,m,n,max;scanf("%d%d",&m,&n);t=m*n;if(m<n){a=n;b=m;}else{a=m;b=n;}c=a%b;while(c!=0){a=b;b=c;c=a%b;}max=b;printf("max=%d\n",max);}第四题:根据读入的字符值,输出以该字符为填充字符的定长等腰三角形如输入:A 5输出为AAAAAAAAAAAAAAAAAAAAAAAAA#include "stdio.h"main(){int i,j,k,ch;printf("请输入字符:\n");scanf("%c",&ch);for(i=1;i<=5;i++){for(k=0;k<6-i;k++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%c",ch);printf("\n");}}做好的程序打成压缩包(学号+姓名)发送至:ZG0124071@。

C语言理论题库2010

C语言理论题库2010

选择题:习题一 C语言的结构选择题1. 以下叙述中正确的是______。

A、C语言程序将从源程序中第一个函数开始执行B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D、main可作为用户标识符,用以命名任意一个函数作为主函数3. 计算机能直接执行的程序是______。

A、源程序B、目标程序C、汇编程序D、可执行程序4. 以下叙述中正确的是______。

A、C程序中的注释只能出现在程序的开始位置和语句的后面B、C程序书写格式严格,要求一行内只能写一个语句C、C程序书写格式自由,一个语句可以写在多行上D、用C语言编写的程序只能放在一个程序文件中5. 结构化程序设计所规定的三种基本控制结构是______。

A、输入、处理、输出B、树形、网形、环形C、顺序、选择、循环D、主程序、子程序、函数10. 下列叙述中正确的是______。

A、C语言编译时不检查语法B、C语言的子程序有过程和函数两种C、C语言的函数可以嵌套定义D、C语言的函数可以嵌套调用11. 以下叙述中正确的是______。

A、C程序的基本组成单位是语句B、C程序中的每一行只能写一条语句C、简单C语句必须以分号结束D、C语句必须在一行内写完12.以下选项中不合法的标识符是______。

A、printB、FORC、&aD、_0016. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。

A、大写字母B、连接符C、数字字符D、下划线17. 下列叙述中正确的是______。

A、每一个C程序文件中都必须要有一个main()函数B、在C程序中main()函数的位置是固定的C、C程序中所有函数之间都可以相互调用,与函数所在位置无关D、在C程序的函数中不能定义另一个函数习题二数据类型及其运算选择题1.表达式18/4*sqrt(4.0)/8的值的数据类型为()A、 intB、floatC、doubleD、不确定2. 以下关于long、int和short类型数据占用内存大小的叙述中正确的是______。

2010上半年计算机等考二级C语言真题及答案

2010上半年计算机等考二级C语言真题及答案

一、选择题:1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C 语言中,每个语句必须以(D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由(B )。

A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有32 个关键字和9 种控制语句。

2、每个源程序有且只有一个main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以\* 符号作为开始标记,以*/ 符号作为结束标记。

4、C 语言中,输入操作是由库函数scanf 完成的,输出操作是由库函数printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是.c ,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是(C )。

A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,( D )是不正确的C 语言字符型常量。

2010上学期C语言期末试卷选择题

2010上学期C语言期末试卷选择题

1、下列叙述中,不正确的是()。

A、一个C源程序必须有且只有一个主函数B、一个C源程序可以包含零个或若干个子函数C、在C源程序中,注释说明必须位于语句之后D、C源程序的基本结构是函数2、下列叙述中,不正确的是()。

A.分号是C语句的必要组成部分B. C语句的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定有main表示3、以下不是C语言的特点是()。

A、C语言简洁紧凑B、C语言可以直接对硬件进行操作C、C语言的可移植性好D、C语言编程容易4、构成C语言的基本单位是()。

A、过程B、函数C、子程序D、命令5、一个C程序的执行是从()。

A、main函数开始,直到main函数结束B、main函数开始,直到最后一个函数结束C、从第一个函数开始,直到最后一个函数结束D、第一条语句开始,直到最后一条语句结束6、在C语言中,main函数的位置A、必须作为第一个函数B、必须作为最后一个函数C、可以任意D、必须放在它所调用的函数之后7、C程序是由()构成的。

A、一个主程序与若干个子程序B、一个或多个函数C、若干过程D、若干子程序8、以下叙述不正确的是()。

A.在C程序中,注释说明只能位于一条语句的后面B.注释说明被计算机编译系统忽略C.注释说明必须括在“/*”和“*/”之间,注释符必须配对使用D.注释符“/”和“*”之间不能有空格9、下列符号串中,属于C语言合法标识符的是。

A. ex-1B. ifC. _cookD. 951a10、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。

A、K%2B、K%2= =1C、(K%2)! =0D、!K%2= =111、对于一个完整的可运行的C源程序,下列哪一个说法是正确的?A、C 语言程序总是从第一个定义的函数开始执行。

B、在C语言程序中,要调用的函数必须在main()函数中定义。

C、C语言程序总是从main()函数开始执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2010试题一、单选题(每小题2分,共20分)1. 表达式(4>3>2) 的值为_______.A.0 B.1 C.2 D.表达式错误2. 下面哪个表达式符合C语言语法_______.A.0.5%2 B.3&(0.5+0.5) C.4.6<<2 D.2==(3/2)3. 若有定义:int a[2][3]; 以下选项中能对a数组元素正确引用的是_______.A.a[2][!1] B.a[2][3] C.a[0][3] D.a[1>2][ !1]4. 以下程序段完全正确的是_______.A.int *p; scanf("%d", &p); B.int *p; scanf(“%d”, p);C.int k, *p=&k; scanf ("%d", p); D.int k, *p; *p= &k; scanf (“%d”, p);5. 有定义语句:int *p[4];以下选项中与此语句等价的是_______.A.int p[4]; B.int **p; C.int *(p[ 4 ]);D.int (*p)[ 4 ];6. 若要定义一个具有4个元素的整型数组,以下错误的定义语句是A.int a[4]={0}; B.int b[]={0, 0,0, 0}; C.int c[1+3]; D.int i=4,d[ i ];7. 若有定义:static int a[3][4]= {0}; 则下面正确的叙述是_______.《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 1 / 10A. 只有元素a[0][0]可得到初值0B. 此说明语句不正确C. 数组a中各元素都可得到初值,但其值不一定为0D. 数组a中每个元素均可得到初值08. 对于以下变量定义,正确的赋值是_______.int *p[3], a[3];A.p=a B.p=&a[0]C.*p=a D.p[0]=*a9. 结构和变量定义如下,则对于“*p->str++”表达式语句,下面叙述正确的是_______.struct { int no; char *str;} a={1,”abc”}, *p=&a;A.* 作用在指针p上和B.++ 作用在指针str上C.++ 作用在str所指的内容D.表达式语句有错上10. 对于下面变量定义,赋值使用方法不正确的是_____。

struct Student { long num; char name[20]; } st1, st2={101,”Tom”}, *p=&st1;A.st1=st2 B.p->name=C.p->num=st2.num D.*p=st2试题二、填空题(每小题2分,共30分)1. 下面程序段的输出结果是_______.《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 2 / 10printf(“%d”,( 5 << 1 ) & ( 0x1f ^(按位异或)31 ));2. 若’a’的ASCII码值为97,那么下面程序段的输出是__123_____.127printf(“%d”,’d’+027(八进制));3. 下面代码段输出结果是___2 2 5____.int i,j,k;i=j=k=1;k+=1+(i++)+(++j);printf("%d#%d#%d",i,j,k);4. 下面代码段输出结果是___-1____.int s=-1;printf(“%d”,(unsigned int)s );5. 表达式1<<2+3的值为___32____.6. 执行下面程序代码后,s值为___30____.int i, s;for (i=10,s=0; ;i--) {if (i==0) break;else if(i%2) continue;s+=i;}7. 执行下面程序代码后,s值为____6___. 4int a=1, b=2, s=0;switch (a>b) {default: switch(s) {case 0:s+=1;default:s+=2;break;}《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 3 / 10case 1: s+=3; break;}8. 以下程序段的输出结果是___10____.#define MOD(x, y) x%yint a = 15, b = 100, z;z = MOD(b, a);printf("%d", z++);9. 对于以下递归函数f,调用函数f(2, '1', '2', '3')的输出结果是___1 3 12 32____.void f(int n, char a, char b, char c){ if(n == 1)printf("%c%c#", a, b) ;else{f(n-1, a, c, b);printf("%c%c#", a, b);f(n-1, c, b, a);}}10. 以下程序的输出结果是___3#6____.2#4#include <stdio.h>void f( int *a, int b ){《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 4 / 10static int k=0;*a += ++k;b +=2;}void main(){ int x=2, y=4;f(&x, y);f(&y, x);printf("%d#%d", x, y);}11. 以下程序的输出结果是___1#2____.#include <stdio.h>void f( int *a, int *b ){int *t;t = a, a = b, b = t;}void main(){ int x=1, y=2;f(&x, &y);《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 5 / 10printf("%d#%d", x, y);}12. 执行命令行程序:find –nx ould text.txt时,*++argv[1]的值是_______.13. 下列程序输出__7#0_____. 48 16#include <stdio.h>#include <string.h>void main( ){ char x[ ]=”STRING”;x[0] = 0;x[1] = ’\0’;x[2] = ’0’;printf(”%d#%d”,sizeof(x),strlen(x));}14. 用typedef 定义新类型名PNODE,使得PNODE表示含有10个structNode结构指针型元素的数组类型___typedef struct Note *PHODE[10] ____.15. 下面程序段的输出是__two e ___。

char *a[2]={"one", "two"}, **p=a;printf("%s#", *(p++)+1);printf("%c", **p-1);试题三、程序阅读题(每小题5分,共30分)1. 如果指针的长度为4字节,则下列程序的输出是_______.#include <stdio.h>《程序设计基础及实验》课程期末考试试卷, 2011年1月19日 6 / 10short x[16][32], *y[32], i, j;int main(void){while(i < sizeof(x)/sizeof(x[0])) {y[i]=x[i];for(j=0; j < sizeof(y); j++) {x[i][j/sizeof(y[0])] = j + i * sizeof(x[0]);}i++;}for(i=0;i<5;i++) printf("%d#", y[1][i]);return 0;}2. 下列程序的输出是_______.#include <stdio.h>char s1[80]="abc56cdefghi\0jklm";int main(void){int j=0, k=0, c;char ch, bf=0, s2[80];《程序设计基础及实验》课程期末考试试卷, 2011年1月19日7 / 10while(ch=s1[j++]) {if(ch - bf != 1) {s2[k++] = ch;c=0;} else if(s1[j] - ch != 1) {if (c) s2[k++] = '-';s2[k++] = ch;} elsec++;bf = ch;}s2[k]='\0';printf("%s", s2);return 0;}3. 当输入:a1b2c3d<回车>时,下列程序的输出是_______.#include <stdio.h>void main(){char *p,s[8];《程序设计基础及实验》课程期末考试试卷, 2011年1月19日8 / 10long n;p=s;gets(p);while (*p !='\0'&& (*p>'8'||*p<'0')) p++;n=*p-'0';while(*++p !='\0')if (*p>'8'||*p<'0') continue;else n=n*8+*p-'0';printf("%ld",n);}4. 下列程序运行时输出结果为_______.#include <stdio.h>int findStr (char *str, char *substr){ int n;char *p , *r;n=0;while ( *str ){p=str;《程序设计基础及实验》课程期末考试试卷, 2011年1月19日9 / 10r=substr;while(*r)if(*r==*p) { r++; p++; }else break;if(*r=='\0')n++;str++;}return n;}void main(){char s1[80]="AAscA\\101\101scA\nAscA00AscA\0AscAs", s2[10]="Asc";printf("%d#", findStr(s1,s2));printf("%d#", findStr(s1+10,s2));printf("%d#\n", findStr(s1+25,s2));}5. 在调用执行下列showProcess函数时,如果第一个printList()函数调用《程序设计基础及实验》课程期末考试试卷, 2011年1月19日10 / 10输出的结果是:4 6 2 5 1 8,则第二个printList()函数调用输出的结果应该是_______.struct node {int data;struct node *next;};struct node *process(struct node *h, int n, int m){ struct node *p, *q;p=h;while (p!=NULL)if (p->data >=n && p->data <=m) {if (p==h) { p=p->next; free(h); h=p; };else { q->next=p->next;free(p);p=q->next;}} else {q=p;p=p->next;}《程序设计基础及实验》课程期末考试试卷, 2011年1月19日11 / 10return h;}void printList(struct node *h){ struct node *p=h;while (p!=NULL) {printf(“%d “, p->data);p=p->next;}}void showProcess(struct node *h){ printList(h); //第一个printListh=process(h,4,6);printList(h); //第二个printList}6. 下列源程序经编译链接后的可执行程序为prog.exe,以命令行方式运行:prog file1 file2 ,其中file1、file2分别是两个文本文件。

相关文档
最新文档