C语言程序设计模拟精彩试题3(附问题详解)
国开《C语言程序设计》(形考任务三)试题及答案
一、选择题(共30分,每小题2分)试题1在下面的函数声明语句中,存在着语法错误的是()。
选择一项:a. AA(int a, int b)b. AA(int, int)“c.AAfint a; int b)d.AA(int a, int)试题2在下面的保留字中,不能作为函数的返回值类型的是()。
选择一项:a. void° b.int'* c.enumd.long试题3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()<•选择一项:r a.lr b.2& c.4r d.8试题4假定a为一个数组名,在下面的表达式中,存在语法错误的是()o选择一项:'aa[i]b. *a+ +}return s;}计算出l+x+x2+...+x n的值并返回。
试题37int SG(int x) ( //x为大于等于2的整数int i=2;while(i*i<=x) (if(x%i ==O) break;i++;)if(i*i<=x) return 0; else return 1;}判断x是否为一个质数(素数),若是则返回1,否则返回0。
试题38int WB(int a[]z int n, int x) (for(int i=0;i<n;i + +)if(a[i] ==x) return 1;return 0;)从数组a[n]中顺序查找值为x的元素,若查找成功则返回1,否则返回0。
试题39int fun(int m, int n) (int c=0;static int b=2;if(m<b || n<b) return m*n;else if(m%b==0 && n%b==0) {c=b; return c*fun(m/b,n/b);}else (b++; return fun(m,n);})一个递归函数过程,求出两个自然数m和n的最小公倍数。
国家二级C语言程序设计机试(选择题)模拟试卷3
国家二级C语言程序设计机试(选择题)模拟试卷3(总分:80.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。
(分数:2.00)A.循环队列B.带链队列C.二叉树√D.带链栈解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。
不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。
2.算法的空间复杂度是指( )。
(分数:2.00)A.算法在执行过程中所需要的计算机存储空间√B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。
3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
(分数:2.00)A.循环队列B.栈√C.队列D.二叉树解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。
4.软件设计中划分模块的一个准则是( )。
(分数:2.00)A.低内聚、低耦合B.高内聚、低耦合√C.低内聚、高耦合D.高内聚、高耦合解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。
5.结构化程序的三种基本控制结构是( )。
(分数:2.00)A.顺序、选择和重复(循环) √B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。
6.软件需求规格说明书在软件开发中的作用不包括( )。
(分数:2.00)A.软件设计的依据B.软件可行性分析的依据√C.软件验收的依据D.用户和开发人员对软件要做什么的共同理解解析:解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。
C语言程序设计考试试卷(附答案)
C语言程序设计考试试卷(附答案)C语言程序设计考试试卷(附答案)第一部分:选择题(共40题,每题2分,总分80分)1. 下列哪个关键字用于定义常量?A. constB. intC. staticD. volatile2. 在C语言中,以下哪个运算符用于将一个整数转换为浮点数?A. *B. /C. %D. +3. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int x = 2, y = 3;printf("%d", x++ * ++y);}```A. 7B. 8C. 9D. 104. C语言中,以下哪个运算符用于从一个整数中提取指定位数的值?A. <<B. >>C. |D. &5. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *ptr);}```A. 1B. 2C. 3D. 4......40. 下列关于结构体的说法中,错误的是:A. 结构体可以包含不同类型的成员变量B. 结构体可以作为函数参数和返回值C. 结构体可以使用“->”来访问成员变量D. 结构体可以使用“sizeof()”函数获取其大小第二部分:填空题(共10题,每题4分,总分40分)1. 以下是有效的C语言标识符:___hello___2. 下列代码的运行结果是:___88___```c#include <stdio.h>void main() {int x = 8;printf("%d", x++);}```3. 在C语言中,以下是有效的声明:___int i, *p;___4. 下列代码的输出结果是:___10___```c#include <stdio.h>void main() {int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *(ptr + 2));}```5. 在C语言中,以下是合法的函数声明:___void fun(int x, float y);___......第三部分:编程题(共3题,每题20分,总分60分)1. 编写一个函数,接受一个整型数组和数组的长度作为参数,返回数组中的最大值。
C语言程序设计练习三
《C语言程序设计》练习三三、阅读分析题1.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int x=8,y=-5;printf(〃x= %d,y= % d \ n〃,x,y);x=x+y;y=x-y;x=x-y;printf(〃x= %d,y= %d \ n〃,x,y);}2.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int x=156,a,b,c;if(x>100){a=x/100;x=x%100;}if(x>10){b=x/10;c=x%10;}printf(〃%3d%3d%3d%3d〃,a, b, c, a*b*c);}3.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){int k=4,i;for(i=0;i<4;i++){switch(k){case 4:printf(〃#〃);case 3:printf(〃*〃);default:printf(〃\n〃);break;case 2:printf(〃$〃);case 1:printf(〃@〃);}k--;}}4.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>f( ){int a=3;static int b=4;a=a+1;b=b+1;printf(〃a= %d,b= %d\n〃,a,b);}void main( ){f( );f( );f( );}5.请阅读分析下面程序,然后写出运行结果。
#include <stdio.h>void main( ){2int i,j, *p[4],a[12]={1,2,3,4,5,6,7,8,9,10,11,12};p[0]=&a[0];p[1]=&a[3];p[2]=&a[6];p[3]=&a[9];for(i=0;i<4;i++){for(j=0,j<3;j++)printf(〃%4d〃,p[i][j]);printf(〃\ n〃);}}6.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。
C语言程序设计模拟试题3(附答案)
《C语言程序设计》模拟试卷三一、填空题。
(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。
2.一个C语言文件就是由若干个组成。
3.设有以下变量定义,并已赋确定得值char w; int x; float y; double z;则表达式:w*x+z-y所求得得数据类型为。
4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达式。
5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。
p与s就是基类型为int得指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]p,给s赋值,使s指向最后一个存储单元a[4]得语句就是。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。
二、单项选择题。
(每题2分,共40分)1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。
A) 3 B) 4 C) 11 D) 122.下列程序得输出结果就是()。
A) 3 B) 3、2 C) 0 D) 3、07main(){double d=3、2; int x,y;x=1、2; y=(x+3、8)/5、0;printf(“%d \n”, d*y);}3.下列程序执行后得输出结果就是(小数点后只写一位)()。
A) 6 6 6、0 6、0 B) 6 6 6、7 6、7C) 6 6 6、0 6、7 D) 6 6 6、7 6、0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法得就是()。
A) short _a=1-、le-1; B) double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;5.设 int x=1, y=1; 表达式(!x||y--)得值就是()。
c语言程序设计试题(3).
c语言程序设计试题(3)一、填空题(10分)1设X为int型变量,请写出描述“ X是偶数”的表达式是:___________________________2、C语言中的基本数据类型分为 _____________ 型, __________ 型和字符型.3、_______________________________________________________________ 在数组intscore[10]={1,2,3,4,5,6}中,元素定义的个数有 _________________________ 个,其中score[8]的值为_____________________ 。
4、continue 语句是用来结束 _________________________________ 循环的。
5、循环语句:for(i= - 1;i<3;i++)printf( “!”);的循环次数是:_____________ 。
6、程序中经常要使用常量3.14,我们用符号run来表示,其定义格式为________________________________ 。
7、 C语言提供的三种逻辑运算符是______________ 、_______________ 和!;二、单选(30分)1、________________________ 以下数组定义正确的是A、int a [oxCF]; B. char 8th[10]; C. char ch [-100]; D. float f (10);2、四种运算中,优先级最高的运算符是( )A、&&B、>=C、==D、+ +3、设有程序段:int x=8;while (x=0)x=x-1 ;则下列描述正确的是_______A、while循环将执行10次B、while循环将执行无限次C、while循环将一次也不执行D、while循环将执行1次0.4、已知scanf( “ a=%d,b=%d,c=%c”,&a,&b,&c);则正确的输入形式是______________A) a=12 b=24 c=36 B) 12,24,36 C) a=12,b=24,c=36 D) 12 24 365、_____________________________ 程序片段执行后输出结果是int x=100, y=200;printf ("% d", (x, y));A 、100 B、200 C、100,200 D、编译出错6、不是C语A、指整C无符单7、设有:int行! (x=a)&&(y=b)&&0表达式的值为 __________A 1 B、0 C 3 D、48、_________________________________________________________________________________设有语句int a=3 ; 则执行了语句a+ = a - = a * a 后,变量a的值是—____________________________A 3B 0C 9D —129. 有如下的程序段,其输出正确的____________ 。
C语言程序设计-第三部分模拟考核试题及解答
C语言程序设计-第三部分模拟考核试题及解答第三部分模拟考核试题及解答一、选择题1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. C2. C语言程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数3. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==54. 枚举类型中的每个枚举常量的值都是一个()。
A. 整数B. 浮点数C. 字符D. 逻辑值5. 循环语句“for(int i=0; i<="" i++)="" p="" s;”中循环体s被执行的次数为(="">A. 1B. n-1C. nD. n+16. 在下面的while循环语句中,其循环体被执行的次数为()。
int i=0,s=0; while(s<20) {i++; s+=i;}A. 4B. 5C. 6D. 77. 若定义了函数double *function(), 则返回值类型为()。
A. 实数型B. 实数指针型C. 函数指针型D. 数组型8. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。
A. 4B. 8C. 16D. 3210. 下列给字符数组赋初值时,正确的是()。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};A. char *p=s;B. char *p=&sC. char *p;p=*s;D. char *p; p=&s11. 要使p指向二维整型数组a[10][20],p应定义为()。
《C语言程序设计》模拟试卷3
《C 语言程序设计》模拟试卷3考试班级:一、判断题(2’×10=20’)1、C 语言源程序文件的扩展名均为.c 。
( )2、所谓常量,就是在程序运行过程中其值可以改变的量。
( )3、一个C 语言程序总是从main 函数开始执行。
( )4、若int i=10,j=2;则执行i*=j+8;后i 的值为28。
( )5、在C 语言中do-while 至少执行1次。
( )6、算术运算符中‘%’的优先级高于‘*’。
( )7、int a[10];该语句表明数组a 中的第十个元素为a[10]。
( ) 8、函数putchar()的作用是:输入一个字符。
( )9、C 语言程序区分大小写。
( )10、在函数调用中将数组名字作为实参时,实现的是单向的值传递。
() 二、单项选择题(2’×15=30’)1、以下定义字符常量PI 语句正确的为( )。
A 、define PI 3.14B 、define PI= 3.14C 、#define PI=3.14D 、#define PI 3.142、在C 语言中,要求运算量必须是整型的运算符是( )。
A 、!B 、++C 、!=D 、%3、下列四个选项中,均是不合法的用户标识符是( )。
A 、A P_0 doB 、float lao _AC 、b-a if intD 、_123 temp INT4、C 语言的三种基本结构是( )。
A 、顺序结构、逻辑结构、选择结构B 、顺序结构、选择结构、循环结构C 、逻辑结构、层次结构、网状结构D 、层次结构、顺序结构、循环结构 系部:班级:学号:姓名:5、下列有关函数的叙述中,不正确的是()。
A、函数可以有返回值,也可以有参数B、函数可以没有返回值,也可以有参数C、函数可以没有返回值,也可以没有参数D、函数必须有返回值,也必须有参数6、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为()。
C语言程序设计模拟试题全解
这是往年的一份考试题,因为今年是上机考试,所以参考价值并不大.大家简单看看相关知识点的出题方式即可.《C语言程序设计》模拟试卷一、单项选择题(本大题共20题,每题2 分,共40分)1、若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a==b;++a,++b)printf ( “ ------------“) ;的正确说法是。
A、循环体只执行一次B、死循环C、循环体一次也不执行D、输出-----------2、若x、y、z均为int 型变量,则执行下列语句后的z值为。
x=4; y=2; z=1; z=(x<y)?z :y ; z = (z<y)?z:x;A、1B、4C、2D、33、‘D’ + 32- 2的结果是。
A、’d’B、’d’的ASCⅡ码C、’a’D、’b’的ASCⅡ码4、下面标识符中,合法的用户标识符为。
A、P#AdB、12aC、charD、_int5、语句char str[20];说明str是一个字符串,最多能表示。
A、20个字符B、21个字符C、18个字符D、19个字符6、将整型表达式x+y+z的结果转换成float型变量的方法是。
A、float x+y+zB、(float) x+y+zC、float(x+y+z)D、(float)(x+y+z)7、以下不正确的描述是。
A、使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B、while循环是先判断表达式后执行循环体语句C、do-while和for循环均是先执行循环体语句,后判断表达式D、for、while、do-while循环中的循环体均可以由空语句构成8、在循环中使用continue 语句的功能是。
A、使程序的执行跳出continue所在的那一重循环B、使程序执行结束C、跳出包含此continue语句的所有循环D、终止本次循环,继续下次循环9、下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是。
C语言程序设计试题附答案3篇
C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
同济大学2019-2020学年第一学期C 语言程序设计试题及答案(三)
同济大学2019-2020学年第一学期C 语言程序设计试题及答案(三)一、单项选择题(20 分,每题 2 分)1.执行下列程序段后,正确的结果是(B)int k, a[3][3] = {1,2,3,4,5,6,7,8,9};for(k=0; k<3; k++)printf(“%2d”, a[k][k]);A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 92.若a 是int 类型变量,则计算表达式a=25/3%3 的值是:(B)A)3 B)2 C)1 D)03.下面正确的字符常量是:(C)A)“c”B)‘\\’’ C)‘W’ D)‘’4. C 语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+5.数字字符0 的ASCII 值为48,若有以下程序main(){char a='1', b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是。
(B)A)3,2 B)50,2 C)2,2 D)2,506.以下语句或语句组中,能正确进行字符串赋值的是。
(D)A)char *sp;*sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";7.for(i=0;i<10;i++)if(i〈=5〉break;则循环结束后i 的值为(B)A)0 B)1 C)5 D)108.执行下列程序段后,正确的结果是(C)char x[8] = {8,7,6,5,0,0}, *s;s = x+1;printf(“%d\n”, s[2]);A) n B) 0 C) 5 D) 69.C 语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA)单向值传递B) 地址传递C) 相互传递D) 由用户指定方式10.设有数组定义:char str[]=”China”;则下面的输出为(C)printf(“%d”,strlen(str));A)4 B)5 C)6 D)7二、填空题(30 分,每空 2 分)1.下列程序段的输出结果是3 。
C语言程序设计题目及解答-03
C语言程序设计题目及解答-03一、判断题 (10分)1. 条件运算符“?:”的优先级高于赋值运算符。
2分2. 复合语句是由多条语句组成的,因此它不是一条语句。
2分3. if语句一定要结合else使用。
2分4. if语句可以嵌套使用,出现多个if和else时,可以使用递缩格式决定if和else的配对。
5. if(x<0){if(x<-1) y=-1;}else y=1;与if(x<0)if(x<-1) y=-1;else y=1;执行效果是一样的。
2分二、选择题 (50分)1.有以下程序:#includeint main( ){int i=1,j=1,k=2;if((j++ || k++) &&i++ )printf("%d,%d,%d",i,j,k);return 0;}执行后输出结果是: [C] 2分A. 1,1,2B. 2,2,1C. 2,2,2D. 2,2,32.若运行时给变量x输入12,则以下程序的运行结果是( )。
[B] 2分#includeint main (){int x,y;scanf("%d",&x);y=x>12 ?(x+10):(x-12);printf("%d",y);return 0;}A. 12B. 0C. 22D. 103.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( )。
[B]A. (exp==0)B. (exp!=0)C. (exp==1)D. (exp!=1)4.当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。
[D] 2分A. k%2B. k%2==1C. (k%2) !=0D. !k%2==15.若有定义语句:int x=3,y=2,z=1;表达式z*=(x>y?++x:y++)的值是( )。
全国计算机等级考试2019年二级C语言程序设计模拟试题3_真含答案与解析)-交互50
全国计算机等级考试2019年二级C语言程序设计模拟试题3(总分100, 做题时间120分钟)选择题(每题 1 分,共 40 分)1.下列叙述中正确的是()。
SSS_SINGLE_SELA栈与队列都只能顺序存储B循环队列是队列的顺序存储结构C循环链表是循环队列的链式存储结构D栈是顺序存储结构而队列是链式存储结构分值: 1答案:B栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构。
2.算法空间复杂度的度量方法是()。
SSS_SINGLE_SELA算法程序的长度B算法所处理的数据量C执行算法所需要的工作单元D执行算法所需要的存储空间分值: 1答案:D算法的空间复杂度是指执行这个算法所需要的存储空间,包括:①输入数据所占的存储空间;②程序本身所占的存储空间;③算法执行过程中所需要的额外空间。
3.设有栈 S 和队列 Q,初始状态均为空。
首先依次将 A, B, C, D, E, F 入栈,然后从栈中退出三个元素依次入队,再将 X, Y, Z 入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
SSS_SINGLE_SELADEFXYZABCBFEDZYXCBACFEDXYZCBADDEFZYXABC分值: 1答案:B栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
队列是指允许在一端进行插入,而在另一端进行删除的线性表。
将 A, B,C, D, E, F 入栈后,栈中元素为 ABCDEF,退出三个元素入队,队列元素为 FED,将 X, Y, Z 入栈后栈中元素为 ABCXYZ,全部入队后,队列元素为 FEDZYXCBA。
4.某二叉树的前序序列为 ABCDEFG,中序序列为 DCBAEFG,则该二叉树的后序序列为()。
C语言程序设计模拟试题三(含答案)
C语言程序设计模拟试题三(含答案)1、计算机的存储器完整的应包括A) 软盘、硬盘B) 磁盘、磁带、光盘C) 内存储器、外存储器D) RAM、ROM2、计算机中运算器的作用是A) 控制数据的输入/输出B) 控制主存与辅存间的数据交换C) 完成各种算术运算和逻辑运算D) 协调和指挥整个计算机系统的操作3、软磁盘处于写保护状态时,其中记录的信息A) 绝对不会丢失B) 不能被擦除,但能追加新信息C) 不能通过写磁盘操作被更新D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除4、光盘根据基制造材料和记录信息的方式不同,一般可分为A) CD、VCDB) CD、VCD、DVD、MP3C) 只读光盘、可一次性写入光盘、可擦写光盘D) 数据盘、音频信息盘、视频信息盘5、在计算机系统中,可执行程序是A) 源代码B) 汇编语言代码C) 机器语言代码D) ASCII码6、计算机软件系统包括A) 操作系统、网络软件B) 系统软件、应用软件C) 客户端应用软件、服务器端系统软件D) 操作系统、应用软件和网络软件7、目前,一台计算机要连入Internet,必须安装的硬件是A) 调制解调器或网卡B) 网络操作系统C) 网络查询工具D) WWW浏览器8、在多媒体计算机系统中,不能存储多媒体信息的是A) 光盘B) 磁盘C) 磁带D) 光缆9、要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是A) TYPE a*.*B) TYPE abc.exeC) TYPE pro.c>PRND) TYPE abc.txt10、下列更改文件名的命令中正确的是A) REN A:file1 C:F1B) RENAME A: A:file1 C:F1C) REN A:file1 F1D) REN A:file1 \\SUB\\F111、已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为:CD\DOSMD USERCD USER由A盘启动DOS系统后,A盘的当前目录是A) \\DOS B) \\DOS\\USER12、MS-DOS是A) 分时操作系统B) 分布式操作系统C) 单用户、单任务操作系统D) 单用户、多任务操作系统13、在Windows操作系统中,不同文档之间互相复制信息需要借助于A) 剪切板B) 记事本C) 写字板D) 磁盘缓冲器14、在Windows操作系统中A) 同一时刻可以有多个活动窗口B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口C) 同一时刻只能有一个打开的窗口D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着15、下列叙述中正确的是A) 所有DOS应用程序都可以在Windows操作系统中正确运行B) 所有DOS应用程序都不能在Windows操作系统中正确运行C) 大部分DOS应用程序可以在Windows操作系统中正确运行D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行16、下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数17、以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.518、下列选项中,合法的C语言关键字是A) VAR B) cherC) integer D) default19、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z) 的C语言表达式是A) x/y*z B) x*(1/(y*z))C) x/y*1/z D) x/y/z20、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9C) -12 D) 621、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4C) 3 D) 122、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10<回车>22<回车>33<回车>B) 10.0,22.0,33.0<回车>C) 10.0<回车>22.0 33.0<回车>D) 10 22<回车>33<回车>23、若执行以下程序时从键盘上输入9,则输出结果是Main0{ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10C) 9 D) 824、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b);{ case 1:y=a+b; break;case 0:y=a-b; break;}B) switch(a*a+b*b){case 3:case 1:y=a+b;break;case 3:y=b-a,break;}C) switch a{ case c1 :y=a-b; breakcase c2: x=a*d; breakdefault:x=a+b;}D) switch(a-b){default:y=a*b;breakcase 3:case 4:x=a+b;break;case 10:case 11:y=a-b;break;}25、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次26、以下程序执行后sum的值是min(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf("%d\n",sum);}A) 15 B) 14C) 不确定D) 027、有以下程序段int x=3do{ printf("%d",x-=2); }while (!(--x));其输出结果是A) 1 B) 3 0C) 1 -2 D) 死循环28、若变量c为char类型,能正确判断出c为小写字母的表达式是A) 'a'<=c<= 'z'B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c)D) (c>= 'a')&&(c<= 'z')29、以下所列的各函数首部中,正确的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)30、以下程序的输出结果是fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf("%d",a);}A) 0 B) 29C) 31 D) 无定值31、下列程序段的输出结果是void fun(int *x, int *y){printf("%d %d", *x, *y); *x=3; *y=4;}{ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2C) 1 2 3 4 D) 2 1 1 232、下列程序的输出结果是main(){char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p);}A) 非法B) a[4]的地址C) 5 D) 333、下列程序的运行结果是void fun(int *a, int *b){ int *k;k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf("%d %d", a, b);}A) 6 3 B) 3 6C) 编译出错D) 0 034、下面程序的输出结果是{int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}A) 0 B) 1C) 10 D) 935、当调用函数时,实参是一个数组名,则向函数传送的是A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值36、设有以下说明语句struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是A) struct结构体类型的关键字B) example是结构体类型名C) x,y,z都是结构体成员名D) struct ex是结构体类型37、以下只有在使用时才为该类型变量分配内存的存储类说明是A) auto和staticB) auto和registerC) register和staticD) extern和register38、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A) EOF B) -1C) 非零值D) NULL39、以下程序的输出结果是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)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21C) 22 D) 2340、以下程序的输出结果是main(){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}A) 1,5,9 B) 1,4,7C) 3,5,7 D) 3,6,941、以下程序的输出结果是main(){ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%dn",s);}A) 18 B) 19 C) 20 D) 2142、以下程序的输出结果是main(){ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}A) ABCDFGHKLB) ABCDEFGIJMC) EFGJKOD) EFGHIJKL43、当执行下面的程序时,如果输入ABC,则输出结果是#include "stdio.h"#include "string.h"main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789");printf("%s\n",ss);}A) ABC6789 B) ABC67C)12345ABC6 D) ABC45678944、假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为main( int argc, char *argv[])){ while(--argc>0) printf("%s",argv[argc]);printf("\n");}A) ABCDEFG B) IJHLC) ABCDEFGHIJKL D) IJKLABCDEFGH45、以下程序的输出结果是long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf("%ld\n", fun(3)); }A) 1 B) 2C) 3 D) 446、以下程序的输出结果是#define SQR(X) X*Xmain(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}A) 16 B) 2C) 9 D) 147、若定义了以下函数:void f(……){……*p=(double *)malloc( 10*sizeof( double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A) double *p B) float **pC) double **p D) float *p48、以下程序的输出是struct st{ int x; int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){ p=aa;printf("%d\n",++(p->x));}A) 10 B) 11C) 51 D) 6049、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是A) free(q); p->next=q->next;B) (*p).next=(*q).next; free(q);C) q=(*q).next; (*p).next=q; free(q);D) q=q->next; p->next=q; p=p->next; free(p);50、以下程序的输出结果是main(){ int x=0.5;char z='a';printf("%d\n", (x&1)&&(z<'z') ); }A) 0 B) 1C) 2 D) 3答案:CCCCC BADDCCCABC DBDACCBBDA CCDCCACBCB BBCBCADADA BCCBB。
C语言试题及答案解析(三)
C语言试题及答案解析(三)班级姓名学号____________一.选择题(20分):1. 判断下面标识符中哪个是C语言中合法的用户定义标识符:A. a-bB. #abdC. typedefD. _max2. ‘b’在内存中占个字节,“B”在内存中占个字节。
A. 1B. 2C. 3D. 43. 下列表达式的值哪些不等于0?A. 2>>1B. ~a&aC. 1>5D. a^a4. 设有一分段函数:x=1 a<b且c=dx=2 a>=b则下列程序段哪个是正确的?A. if(a<b)B. if (a<b)C. if (a>b)D. if (a>=b)If(c==d) {if (c==d) if (c==d) x=2;x=1; x=1; x=1; elseelse x=2; else x=2;} else x=2; {if(c==d) x=1;}5. 下列关于switch和break语句的讨论中,只有是正确的。
A. break语句是switch 语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C. switch语句中必须使用break语句D.以上三种说法都不正确。
6. 若有两条语句:static char x[]=”abcde”;static char y[]={‘a’,’b’,’c’,’d’,’e’};则下列说法中正确的是:。
A. x数组和y数组长度相同B.x数组长度大于y数组长度C.x数组长度小于y数组长度D.以上三种说法均错误。
7. 返回值为void的函数,其含义是:A. 调用函数之后,被调用的函数没有返回值;B. 调用函数之后,被调用的函数不返回C. 调用函数之后,被调用的函数返回值为任意类型D. 以上三种说法均不正确。
8. C语言中函数的隐含存储类别是,在一个C源程序文件中,若要定义一个只允许在本源文件中所有函数使用的全局变量,则变量需要使用的存储类别是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》模拟试卷三一、填空题。
(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。
2.一个C语言文件是由若干个组成。
3.设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为。
4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。
5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。
p和s是基类型为int的指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4](1)若p已指向存储单元a[1]。
通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。
二、单项选择题。
(每题2分,共40分)1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。
A) 3 B) 4 C) 11 D) 122.下列程序的输出结果是()。
A) 3 B) 3.2 C) 0 D) 3.07main(){double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf(“%d \n”, d*y);}3.下列程序执行后的输出结果是(小数点后只写一位)()。
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法的是()。
A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;5.设int x=1, y=1; 表达式(!x||y--)的值是()。
A) 0 B) 1 C) 2 D) -16.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。
A) if (x>0) y=1; B) if(x)else if(x<0)y=-1; if(x>0)y=1;else y=0; else if(x<0)y=-1;else y=0;C) y=-1 D) y=0;if(x) if(x>=0)if(x>0)y=1; if(x>0)y=1;else if(x==0)y=0; else y=-1;else y=-1;7.以下循环体的执行次数是()。
A) 3 B) 2 C) 1 D) 0main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i);}8.以下叙述正确的是()。
A) do-while语句构成的循环不能用其它语句构成的循环来代替。
B) do-while语句构成的循环只能用break语句退出。
C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。
9.下列程序执行后的输出结果是()。
A) G B) H C) I D) Jmain(){ int x=’f’; printf(“%c \n”,’A’+(x-‘a’+1)); }10.执行下面的程序段后,变量k中的值为()。
A) 不定值B) 33 C) 30 D) 10int k=3, s[2];s[0]=k; k=s[1]*10;11.若已定义: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]12.下列程序执行后的输出结果是()。
A) 6 B) 7 C) 8 D) 9void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf(“%d \n”,b[0]);}13.下列程序的运行结果是()。
A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d#include <stdio.h>main(){ int a=2,c=5;printf(“a=%d,b=%d\n”,a,c); }14.下列程序执行后的输出结果是()。
A) 3 B) 6 C) 9 D) 随机数main(){ int a[3][3], *p, i;p=&a[0][0];for(i=0; i<9; i++) p[i]=i+1;printf(“%d \n”,a[1][2]);}15.设有数组定义: char array [ ]= “China”; 则数组array所占的空间为()。
A) 4个字节B) 5个字节C) 6个字节D) 7个字节16.下列程序的输出结果是()。
A) 4 B) 6 C) 8 D) 10int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf(“%d \n”,res);}17.有以下定义和语句int a[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是( )A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2]18.下列程序的输出结果是()。
A) 5 B) 6 C) 7 D) 8struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}};int t;t=s[0].a+s[1].b;printf(“%d \n”,t);}19.若有以下调用语句,则不正确的fun函数的首部是()。
A) void fun(int m, int x[]) B) void fun(int s, int h[41])C) void fun(int p, int *s) D) void fun(int n, int a)main(){ …int a[50],n;…fun(n, &a[9]);…}20.在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
A) fprintf函数B) fread函数 C) fwrite函数D) fputc函数三、修改下列程序:(在程序出错的语句下划横线并标号,把修改后的语句写在程序下面的横线上。
)(每小题5分,共10分)1.下列给定程序的功能是:读入一个整数(2<=k<=10000),打印它的所有质因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出2、3、5、7、11。
#include <conio.h>#include <stdio.h>*******************************IsPrime(int n);{int i,m;m=1;for ( i=2; i<n; i++)******************************if !(n%i){ m=0; contitue; }return (m);}main(){ int j,k;clrscr();printf(“nPlease enter an integer number between 2 and 10000:”); scanf(“%d”,k);printf(“nnThe prime factor(s) of %d is (are):”,k);for (j=2;j<=k;j++)if ( (!(k%j))&(IsPrime(j)) ) printf(" %4d",j);getchar();})2.下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。
例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。
#include <stdio.h>#include <string.h>****************************************void; fun(char *p,char *q,char *c);***************************************{int k=1;***************************************while(*p!=*q){if (*p<*q) c[k]=*q;else c[k]=*p;if (*p) p++;if (*q) q++;k++;}K=’\0’;}***************************************main(){char a[10]=“aBCDeFgh”,b[10]=“ABcd”,c[80]={“”};fun(a,b,c);printf(“The string a:”); puts(a);printf(“The string b:”); puts (b);printf(“The result:”); puts(c);}四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。
(每小题4分,共16分)1. #include <stdio.h>void main(){ char ch; int k=0;for(ch=’A’;ch<’H’;ch++,k++)if(k%2==0) printf(“%c”,ch);printf(“\n”);}输出结果:2. #include <stdio.h>void main( ){ int k=0;char c=’A’;do {switch (c++){case ‘A’: k++; break;case ‘B’: k--;case ‘C’: k+=2; break;case ‘D’: k=k%2; break;case ‘E’: k=k*10; break;default: k=k/3;}k++;} while(c<’G’);printf(“k=%d\n”, k);}输出结果:3. #include <stdio.h>void main(){ int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;for(i=0;i<6;i++) {for(j=0;j<6;j++) if(a[i]==b[j])break;if(j<6) printf(“%d ”,a[i]);}printf(“\n”);}输出结果:4. #include <stdio.h>void main(){ int a[8]={1,0,1,0,1,0,1,0},i;for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2];for(i=0;i<8;i++) printf(“%d ”,a[i]);printf(“\n”);}输出结果:五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。