当前位置:首页 » 编程语言 » c语言笔试题目

c语言笔试题目

发布时间: 2023-12-07 17:54:53

1. c语言笔试题来几份

留邮箱我给你发试卷和答案
一. 单项选择题
1) C语言中最基本的非空数据类型包括
A.整型、浮点型、无值型 B.整型、字符型、无值型
C. 整型、浮点型、字符型 D. 整型、浮点型、双精度型、字符型
2) C语言中运算对象必须是整型的运算符是
A.% B./ C.= D.<=
3) 若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是
A.1 B.2 C.2.0 D.2.5
4) 若有以下程序 段,int a=1,b=2,c=1.0/b*a;则执行后,c中的值是
A.0 B.0.5 C.1 D.2
5) 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是
A.a>=10ora<=0 B.a>=0|a<=10
C.a>=10&&a<=0 D.a>=10||a<=0
6) 下列字符序列中, 不可用作C语言标识符的是
A.xyd233 B.No.1 C._sd D.xyz
7) 在printf()函数中,反斜杠字符‘\’表示为
A.\’ B.\0 C.\n D.\\
8) 设先有定义:int a=10;则表达示a+=a*=a的值为
A.10 B.100 C.1000 D.200
9) 设先有定义:int y=3,x=2,z=1;则语句:
printf(“%d %d\n”,(++x,y++),z+2);的输出结果为
A.3 4 B.4 2 C.4 3 D.3 3
10) 假定x、y、z、m均为int 型变量,有如下程序段
x=2;y=3;z=1;
m=(y<x)?y:x;
m=(z<y)?m:y;
则该程序运行后,m的值是
A.4 B.3 C2 D.1
11) 以下选项中合法的字符常量是
A. “B” B.’\010’ C.68 D.D
12) 设x=3,y=4,z=5,则表达式((x+y)>z)&&(y==z)&&x||y+z&&y+z的值为
A.0 B.1 C.2 D.3
13) 结构化程序模块不具有的特征是
A.只有一个入口和一个出口
B.要尽量多使用goto语句
C.一般有顺序、选择和循环三种基本结构
D.程序中不能有死循环
14) C语言中,逻辑“真”等价于
A.整数1 B. 整数0 C.非0数 D.TRUE
15) 以下4条语句中,有语法错误的是
A.if(a>b) m=n; B.if(a<b) m=b;
C.if((a=b)>=0) m=a; D.if((a=b;)>=0) m=a;
16) 若i,j均为整型变量,则以下循环
for(i=0,j=2;j=1;i++,j--)
printf(“%5d,%d\n”,I,j);
A.循环体只执行一次 B.循环体执行二次
C.是无限循环 D.循环条件不合法
17) 以下程序段,执行结果为
a=1;
do
{
a=a*a;
}while(!a);
A.循环体只执行一次 B.循环体执行二次
C.是无限循环 D.循环条件不合法
18) C语言中while与do-while语句的主要区别是
A.do-while循环体至少无条件执行一次 B.do-while允许从外部跳到循环体内
B.while的循环体至少无条件执行一次 D.while的循环控制条件比do-while的严格
19) 语句while(!a);中条件等价于
A.a!=0 B.~a C.a==1 D.a==0
20) 以下程序的运行结果为
#include<stdio.h>
main()
{
int i=1,sum=0;
while(i<=100)
sum+=i;
printf(“1+2+3+…+99+100=%d”,sum);
}
A.5050 B.1 C.0 D.程序陷入死循环
21) 以下程序运行结果为
#include<stdio.h>
main()
{
int sum,pad;
sum=pad=5;
pad=sum++;
pad++;
++pad;
printf(“%d\n”,pad);
}
A.7 B.6 C.5 D.4
22) 以下程序的运行结果为
#include<stdio.h>
main()
{
int a=2,b=10;
printf(“a=%%d,b=%%d\n”,a,b);
}
A.a=%2,b=%10 B.a=2,b=10
C. a=%%d,b=%%d D. a=%d,b=%d
23) 为了避免嵌套的if-else语句的二义性,C语言规定else总是
A.与缩排位置相同的if组成配对关系
B.与在其之前未配对的if组成配对关系
C. 与在其之前未配对的最近的if组成配对关系
D.与同一行上的if组成配对关系
24) 对于for(表达式1;;表达式3)可理解为
A.for(表达式1;表达式3) B. for(表达式1;1;表达式3)
C. for(表达式1;0;表达式3) D. for(表达式1;表达式3;表达式3)
25) 在下列数组定义、初始化或赋值语句中,正确的是
A.int a[8]=100; B.int s[5]={1,2,3,4,5,6};
C.int x[]={1,2,3,4,5,6}; D.int n=8;int score[n];
26) 若已有定义:int i,a[100];则下列语句中,不正确的是
A.for(i=0;i<100;i++) a[i]=i; B. for(i=0;i<100;i++) scanf(“%d”,&a[i]);
C.scanf(“%d”,&a); D.for(i=0;i<100;i++) scanf(“%d”,a+i);
27) 与定义char c[]={“GOOD”};不等价的是
A.char c[]={‘G’,’O’,’O’,’D’,’\0’}; B. char c[]=“GOOD”;
C. char c[4]={“GOOD”}; D. char c[5]={‘G’,’O’,’O’,’D’,’\0’};
28) 若已有定义char c[]={“GOOD”};则下列语句 中,不正确的是
A.puts(c); B.for(i=0;c[i]!=’\0’;i++) printf(“%c”,c[i]);
C.printf(“%s”,c); D.for(i=0; c[i]!=’\0’;i++) putchar(c);
29) 若定义a[][3]={0,1,2,3,4,5,6,7};则a数组中行的大小是
A.2 B.3 C.4 D.不确定值
30) 以下程序的运行结果是
#include<stdio.h>
void f(int b[])
{
int i=0;
while(b[i]<=10)
{
b[i]+=2;
i++;
}
}
main()
{
int i,a[6]={-1,5,10,9,13,7};
f(a);
for(i=0;i<6;i++)
{
printf(“%2d”,a[i]);
}
}
A.2 7 12 11 13 9 B.1 7 12 11 13 7
C.1 7 12 11 13 9 D.1 7 12 9 13 7
31) 若执行以下程序段,其运行结果是
char c[]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s\n”,c);
A.ab c B.’a’’b’ C.abc D.ab
32) 数组名作为参数传递给函数,作为实际参数的数组名被处理为
A.该数组长度 B.该数组元素个数
C.该函数中各元素的值 D.该数组的首地址
33) 当接受用户输入 的含空格的字符串时,应使用函数
A.scanf() B.gets() C.getchar() D.getc()
34) 一个完整的可运行的C源程序中
A.可以有一个或多个主函数
B.必须有且仅有一个主函数
C.可以没有主函数
D.必须不主函数和其他函数
35) 构成C语言源程序的基本单位是
A.子程序 B.过程 C.文本 D. 函数
36) 某C程序由一个主函数和一个自定义函数组成,则该程序
A.总是从max()函数开始执行
B.写在前面的函数先开始执行
C.写在后面的函数先开始执行
D. 总是从main()函数开始执行
37) C语言规定,一个C源程序的主函数名必须为
A.program B.include C.main D.function
38) 下列说法正确的是
A. 在书写C语言源程序是,每个语句以逗号结束
B. 注释时,’/’和’*’号间可以有空格
C. 无论注释内容的多少,在对程序编译时都被忽略
D. C程序每行只能写一个语句
39) C语言中函数形参的缺省存储类型是
A.静态 B.自动 C.寄存器 D.外部
40) 函数调用语句function((exp1,exp2),18)中含有的实参个数为
A.0 B.1 C.2 D.3
二. 填空题
1. 表达式10/3的结果是 ;10%3的结果是
2. 执行语句:int a=12;a+=a-=a*a;后的值是
3. 以下语句的输出结果是
Short b=65535; printf(“%d”,b);
4. 以下程序的执行结果是
#include<stdio.h>
main()
{
int a,b,x;
x=(a=3,b=a--);
printf(“x=%d,a=%d,b=%d\n”,x,a,b);
}
5. 以下程序的执行结果是
#include<stdio.h>
main()
{
float f1,f2,f3,f4;
int m1,m2;
f1=f2=f3=f4=2;
m1=m2=1;
printf(“%d\n”,(m1=f1>=f2)&&(m2=f3<f4));
}
6. 以下程序的执行结果是
#include<stdio.h>
main()
{
float f=13.8;
int n;
n=(int)f%3;
printf(“n=%d\n”,n);
}
7. 若定义union ex{int i;float f;char a[10]}x;则sizeof(x)的值是
8. 设有int i=-1,如果在printf函数中用%u格式输出i,则输出结果是
9. 数组在内存中的首地址由 表示。
10. “*”称为 运算符。
三. 阅读理解题
1. 下面程序的运行结果是
#include<stdio.h>
main()
{
static int a[4][5]={{1,2,3,4,0},{2,2,0,0,0},{3,4,5,0,0},{6,0,0,0,0}};
int j,k;
for(j=0;j<4;j++)
{
for(k=0;k<5;k++)
{
if(a[j][k]==0) break;
printf(“%d”,a[j][k]);
}
}
printf(“\n”);
}
2. 下面程序的运行结果是
#include<stdio.h>
main()
{
int a[]={1,2,3,4},i,j,s=0;
j=1;
for(i=3;i<=0;i--)
{
s=s+a[]*j;
j=j*10;
}
printf(“s=%d\n”,s)
}
3. 下面程序的运行结果是
#include<stdio.h>
int fun(int x)
{
int s;
if(x==0||x==1)
return 3;
s=x-fun(x-3);
return s;
}
main()
{
printf(“%d\n”,fun(3));
}
4. 下面程序的运行结果是
#include<stdio.h>
unsigned int fun(unsigned num)
{
unsigned int k=1;
do
{
k=k*num%10;
num=num/10;
}while(num);
return k;
}
5. 下面程序的运行结果是
#include<stdio.h>
int fun(int x,int y)
{
static int m=0,n=2;
n+=m+1;
m=n+x+y;
return m;
}
四. 编程
1. 输入四个整数,要求将它们按由小到大的顺序输出。
2. 编程求s=1-1/2+1/3-1/4+…-1/100。
3. 如果一个数等于其所有真因子(不包括其本身)之和,则该数为完数,例如6的因子有1、2、3,且6=1+2+3,故和为完数,求2~1000中的完数。(选做)

2. 计算机等级考试 笔试题型 二级C语言

选择35 填空15 每题2分

2010年3月计算机等级考试二级C++笔试试题
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n)
(2)算法的时间复杂度是指
A)算法的执行时间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的基本运算次数
(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是
A)编辑软件
B)操作系统
C)教务管理系统
D)浏览器
(4)软件(程序)调试的任务是
A)诊断和改正程序中的错误
B)尽可能多地发现程序中的错误
C)发现并改正程序中的所有错误
D)确定程序中错误的性质
(5)数据流程图(DFD图)是
A)软件概要设计的工具
B)软件详细设计的工具
C)结构化方法的需求分析工具
D)面向对象方法的需求分析工具
(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于
A)定义阶段
B)开发阶段
C)维护阶段
D)上述三个阶段
(7)数据库管理系统中负责数据模式定义的语言是
A)数据定义语言
B)数据管理语言
C)数据操纵语言
D)数据控制语言
(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是
A)文件
B)数据库
C)字段
D)记录
(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的
A)需求分析阶段
B)逻辑设计阶段
C)概念设计阶段
D)物理设计阶段
(10)有两个关系R和T如下:

则由关系R得到关系T的操作是
A)选择
B)投影
C)交
D)并
(11)下列关于函数的描述中,错误的是
A)函数可以没有返回值
B)函数可以没有参数
C)函数可以是一个类的成员
D)函数不能被定义为模板
(12)若MyClass是一个类名,且有如下语句序列
MyClass c1,*c2;
MyClass *c3=new MyClass;
MyClass &c4=c1;
上面的语句序列所定义的类对象的个数是
A)1
B)2
C)3
D)4
(13)下列关于继承方式的描述中,错误的是
A)如果不显式地指定继承方式,缺省的继承方式是私有(private)
B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员
C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员
D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员
(14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是
A)Decr& operator --(int);
B)Decr operator --( Decr&,int);
C)friend Decr& operator --(Decr&);
D)frlend Decr operator --(Decr&,int);
(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列
MyTempp2;
MyTempp3[2];
编译系统在处理上面的冲做语句序列时,所生成的模板MyTemp的实例的个数是
A)1
B)2
C)3
D)0
(16)在C++中,cin是个
A)类
B)对象
C)模板
D)函数
(17)在下列字符中,不允许作为C++标识符的是
A)b
B)B
C)_
D)2
(18)下列叙述中饥判如,错误的是
A)false是一个逻辑型常量
B)"b"是一个字符型常量
C)365是一个int常量
D)3.1415926是一个double常量
(19)若x和y是程序中烂启的两个整型变量,则下列if语句中正确的是
A)if(x==0) y=1; else y=2;
B)if(x==0) then y=1 else y=2;
C)if(x==0) y=1 else y=2;
D)if x==0 y=1; else y=2;
(20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是
A)int x[3]={0,0,0};
B)int x[]={0};
C)static int x[3]={0};
D)int x[]={0,0,0};
(21)关于函数中的<返回类型>,下列表述中错误的是
A)<返回类型>中有可能包含关键字int
B)<返回类型>中有可能包含自定义标识符
C)<返回类型>中有可能包含字符*
D)<返回类型>中可能包含[]
(22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是
A)MyClass p=MyClass;
B)MyClass p=new MyClass;
C)MyClass &p=new MyClass;
D) MyClass a,&p=a;
(23)有如下两个类定义
class XX{
private:
double x1;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double y1;
protected:
double y2;
public:
double y3;
};
在类YY中保护成员变量的个数是
A)1
B)2
C)3
D)4
(24)下列关于运算符重载的描述中,错误的是
A)可以通过运算符重载在C++中创建新的运算符
B)赋值运算符只能重载为成员函数
C)运算符函数重载为类的成员函数时,第一操作数是该类对象
D)重载类型转换运算符时不需要声明返回类型
(25)下列关于类模板的描述中,错误的是
A)类模板的成员函数都是模板函数
B)可以为类模板参数设置默认值
C)类模板描述了一组类
D)类模板中只允许有一个类型参数
(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是
A)setprecision
B)setw
C)setfill
D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是
int fun1();
class Test{
public:
int fun2();
friend int fun3();
static int fun4();
};
A)fun1
B)fun2
C)fun3
D)fun4
(28)有如下程序
#include
using namespace std;
class Test{
public:
Test(){ }
Test(const Test &t) {cout<<1;}
};
Test fun(Test &u) {Test t=u; return t;}
int main(){Test x,y; x=fun(y); return 0;}
运行这个程序的输出结果是
A)无输出
B)1
C)11
D)111
(29)有如下程序
#include
using namespace std;
class A{
public:
A(int i=0):r1(i) { }
void print() {cout<<'E’<<R1<<'-';}< p>
void print() const {cout<<'C'<<R1*R1<<'-';}< p>
void print(int x) {cout <<'P'<<R1*R1*R1<<'-';}< p>
private:
int r1;
};
int main() {
A a1;
const A a2(4);
a1.print(2);
a1.print();
return 0;
}
运行时的输出结果是
A)P8-E4
B)P8-C16-
C)P0-E4-
D)P0-C16-
(30)下列代码声明了3个类
class Person{};
class Student:public Person{};
class Undergraate:Student{};
下列关于这些类之间关系的描述中,错误的是
A)类Person是类Undergraate的基类
B)类Undergraate从类Student公有继承
C)类Student是类Person的派生类
D)类Undergraate是类Person的派生类

(31)有如下程序
#include
using namespace std;
Class Base{
public:
Base(int x=0):valB(x) {cout<<VALB;}< p>
~Base() {cout<<VALB;}< p>
private:
int valB;
};
class Derived:public Base{
public:
Derived(int x=0,int y=0):Base(x),valD(y){cout<<VALD;}< p>
~Derived() {cout<<VALD;}< p>
private:
int valD;
};
int main(){
Derived obj12(2,3);
retuen 0;
}
运行时的输出结果是
A)2332
B)2323
C)3232
D)3223
(32)下面是类Shape的定义:
class Shape{
public:
virtual void Draw()=0;
};
下列关于Shape类的描述中,正确的是
A)类Shape是虚基类
B)类Shape是抽象类
C)类Shape中的Draw函数声明有误
D)语句“Shape s;”能够建立Shape的一个对象s
(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是
A)MyClock operator + (MyClock,long);
B)MyClock operator + (MyClock,MyClock);
C)MyClock operator + (long,long);
D)MyClock operator + (long,MyClock);
(34)打开文件时可单独或组合使用下列文件打开模式
①ios_base::app ②ios_base::binary
③ios_base::in ④ios_base::out
若要以二进制读方式打开一个文件,需使用的文件打开模式为
A)①③
B)①④
C)②③
D)②④
(35)有如下程序:
#include
using namespace std;
Class B{
public:
B(int xx):x(xx) {++cout; x+=10;}
virtual void show() const
{cout<<COUNT<<'_'<<X<<ENDL;}< p>
protected:
static int count;
private:
int x;
};
class D:public B{
public:
D(int xx,int yy):B(xx),y(yy) {++count; y+=100;}
virtual void show() const
{cout<<COUNT<<'_'<<Y<<ENDL;}< p>
private:
int y;
};
int B::count=0;
int main(){
B *ptr=new D(10,20);
ptr->show();
delete ptr;
return 0;
}
运行时的输出结果是
A)1_120
B)2_120
C)1_20
D)2_20
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。
(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 【1】 。
(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。
(3)设二叉树如下:

对该二叉树进行后序遍历的结果为 【3】 。
(4)软件是 【4】 、数据和文档的集合。
(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。
(6)若x和y是两个整形变量,在执行了语句序列
x=5; y=6; y+=x--;
后,x+y的值为 【6】 。
(7)在执行语句序列
int i=0; do i++; while(i*i<10);
时,do后面的循环体语句i++被执行的次数为 【7】 。
(8)有如下的函数定义:
int Xfun(int *a, int n){
int x=*a;
for(int *pa=a+1; pa<>
if(*pa>x) x=*pa;
return x;
}
若执行了语句
int x[5]={23,46,78,55,16};
后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为 【8】 。
(9)有如下的函数定义:
int Xfun(int x){
int y=x;
{int x=10; y+=x;}
return x+y;
}
通过表达式Xfun(5)调用该函数,则得到的返回值为 【9】 。
(10)假定Xcs是一个类,该类中一个成员函数的原型为“Xcs *abc();”,则在类外定义时对应的函数头为 【10】 。
(11)请将下面的类Date的定义补充完整,使得由语句
Date FirstDay;
定义的对象FirstDay的值为2010年1月1日。
class Date{
public:
Date( 【11】 ):year(y),month(m),day(d){ }
private:
int year,month,day; //依次表示年、月、日
};
(12)请将下面的程序补充完整,使得程序输出“飘是张娜的书”。
#include
using namespace std;
class Book{
public:
Book(char *str) {strcpy(title,str);}
【12】 void PrintInfo() {cout<<TITLE<<ENDL;}< p>
protected:
char title[50];
};
class MyBook:public Book{
public:
MyBook(char *s1,char *s2="张娜"):
【13】 {strcpy(owner,s2);}
virtual void PrintInfo() {cout<<TITLE<<"是"OWNER<<"的书"<<ENDL;}< p>
private:
char owner[10];
};
int main(){
Book *prt=new MyBook("飘");
prt->PrintInfo();
return 0;
}
(13)在有理数类Rational中重载插入运算符<<,以便按a/q形式输出。请将<<运算符函数的定义补充完整。
class Rational{
public:
Rational(int aa, int qq):a(aa),q(qq){ }
friend 【14】 operator<<(ostream &out, Rational &x)
{
return (out<<X.A<<' p ?<<x.q);<>
}
private:
int a,q;
};
(14)下面的函数定义是某函数模板能够生成的函数实例
int square(int n) {return n*n;}
double square(double n) {return n*n;}
由此可知,该函数模板的定义是 【15】 。

3. 关于C语言笔试的几道题

printf(..... B*2)
而B是什么?是(A<A+2)-2
那么也就是(A<A+2)-2*2 而你的2*((A<A+2)-2) 人家又没有破号,你自己给他加一个上去,这能没问题吗?这没什么原理,是规定,是逻辑,想不通没关系,这种样的宏初级编程用不上,等你到达高级程度了也就自己会理解的了。

展开后是(A<A+2)-2*2 并不是2*((A<A+2)-2)

乘法当然比减法优先了,先乘后减。。。。。。。

第一题
首先定义了宏 A 他的值是10 实际上可以当成int a=10;
然后#define B (A<A+2)-2
实际上也就是#define B (10<10+2)-2
首先算术运算符比关系运算法优先高就变成了 (10<12)-2,然后10<12条件是真,为1,变成了 1-2 由于printf("%d",B*2); 又变成了 1-2*2 结果1-4=-3;

第二题
这个二维数组分解开来就是 a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6, 这个二维数组是三行,二列,行的下标有0,1,2,列的下标有0,1 你的a[1][2]越界了。

第三题并不是单纯的用box 的长度去和boss比较,而是acsii表里的值去减,首先 b和b比,相等,会自动看下一个,o和o比,任然相等,然后x和s比,在acsii里x是120而s是115,所以box大,至于boss最后多出的s就不管了。

4. 计算机二级考试(江西考区)试题c语言及答案

2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题
(1)下列叙述中正确的是
A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n
B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指
A)算法的执行时间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是
A)编辑软件
B)操作系统
C)教务管理系统
D)浏览器(4)软件(程序)调试的任务是
A)诊断和改正程序中的错误
B)尽可能多地发现程序中的错误
C)发现并改正程序中的所有错误
D)确定程序中错误的性质(5)数据流程图(DFD图)是
A)软件概要设计的工具
B)软件详细设计的工具
C)结构化方法的需求分析工具
D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于
A)定义阶段
B)开发阶段
C)维护阶段
D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是
A)数据定义语言
B)数据管理语言
C)数据操纵语言
D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是
A)文件
B)数据库
C)字段
D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的
A)需求分析阶段
B)逻辑设计阶段
C)概念设计阶段
D)物理设计阶段(10)有两个关系R和T如下:
则由关系K得到关系T的操作是
A)选择
B)投影
C)交
D)并(11)以下叙述正确的是
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:fun(fun(x))
C)C语言函数不可以单独编译
D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是
A)C语言中的注释不可以夹在变量名或关键字的中间
B)C语言中的变量可以在使用之前的任何位置进行定义
C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是
A)_1
B)AaBc
C)a_b
D)a-b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是
A)a=a++,i++;
B)i=(a+k)<=(i+k);
C)i=a%11;
D)i=!a;(15)有以下程序
#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>
则输出结果是
A)1234
B)12
C)12
3
D)12
34(16)以i关于C语言数据类型使用的叙述中错误的是
A)若要准确无误差的表示自然数,应使用整数类型
B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是
A)1
B)0
C)2
D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是
A)switch(a)
{case:a=b;break;<br>default:a++;<br>}<br>B)switch(a==1)<br>{case 0:a=b;break;<br>case 1:a++;<br>}
C)switch(a)
{default:a++;break;<br>case 1:a=b;<br>}
D)switch(a==1)
{case 1:a=b;break;<br>case 0:a++;<br>}(19)有如下嵌套的if语句
if (a<b)
if(a<c)k=a;
else k=c;
else
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
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<c)?a:):((b<c)?b:c);
D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序
#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;<br>m=i*j;<br>}
}
printf("m=%d\n",m);

程序运行后的输出结果是
A)m=6
B)m=2
C)m=4
D)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,18
B)8,11
C)7,11
D)10,14(22)有以下程序,其中k的初值为八进制数
#include <stdio.h>
main()
{int k=011;
printf("%d\n",k++);

程序运行后的输出结果是
A)12
B)11
C)10
D)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 2008
int 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,A
B)b,B,B,A
C)a,B,B,a
D)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是
A)定义了基类型为int的三个指针变量
B)定义了基类型为int的具有三个元素的指针数组pt
C)定义了一个名为*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)6
B)10
C)11
D)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)1
B)3
C)4
D)9(31)若有以下定义和语句.......这是全国2010全国c语言考试的部分题目,楼主需要的话可以自己去下载转自:酷8学习网 www.k8xx.com

5. 一些C语言求职笔试题2

19、一个队列入列顺序是1,2,3,4,则输出顺序是		
a、4321b、1234c、1432d、3241
队列是先进先出的,所以答案是B、1234

20、若进栈顺序为1,2,3,4,假定进栈和出栈可以穿插进行,
则可能的出栈顺序为:
a、2413b、3142c、3412d、1234
答案是:D。分析过程如下:
A,第一个为2第二个为4,可以确定栈中是3,1所以应该是2431
B,第一个为3,则栈中2,1。第二个可能是24,但肯定不是1
C,第一个为3,第二个为4,则栈中是2,1,所以应该是3421
D,由于进栈和出栈可以穿插进行,所以1进,1出,2进,2出,3进,3出,4进,4出。

21、算法的空间复杂度指
a、算法程序的长度
b、算法程序的指令条数
c、算法程序占的存储空间
d、算法执行过程中所需的存储空间
答案是D,因为,空间复杂度指的就是:程序执行过程中由于需要,所申请的内存空间。

22、某数列有1000个各不相同的单元,有低到高排列,要对该数进行二分法检索
,最坏的情况下,需要检查多少个单元
a、1000b、10c、100d、500
答案是B,
因为,因为2^9=512,不够检索完1000个,
那么:2^10=1024,就够检索完1000个了。
二分查找次数以2为基数,2的10次方为1024,
完全可以查找到,所以最多只需要10次即可。

23、已知数组A中,每个元素A[I][J]在存储时要占3个字节,设I从0变到4,
J从0到9,分配内存从地址SA开始连续按行存储分配的。问:A[4][7]的起始地址为:
a、SA+84b、SA+99c、SA+120d、SA+141
答案是D,
因为,数组的首个元素也就是数组的首地址是A[0][0],
那么A[4][7]就是第5行的第8列,一个元素3个字节,
那么一行(J最大为9,就是10列)10*3=30个字节,
前4行4*30=120,再加上7个7*3,
结果就是:4*10*3+7*3=141。24、使用双向链表存放数据的优点是
a、提高检索速度b、方便的插入和删除数据
c、节约存储空间d、很快回收存储空间
答案是B,因为,
链表优点:
1)插入和删除元素不需要移动其余元素,效率高;
2)不要求连续空间,空间利用效率高
链表缺点:
1)不提高随机访问元素的机制
2)查找元素和搜索元素的效率低


25、若某链表最常用的操作是在最后一个结点之后插入一个结点并删除最后一个
结点,则采用____存储方式最省时间
a、单链表
b、双链表
c、带头节点的双循环链表
d、单循环链表
答案是C,因为,
双循环链表能够通过头结点的前驱就是尾结点,能够迅速找到尾结点,然后进行插入和删除操作


26、在理想情况下,散列表中查找元素所需比较次数为:
a、nb、0c、n/2d、1
答案是D,因为,
散列方法不同于顺序查找、二分查找、二叉排序树及B-树上的查找。
它不以关键字的比较为基本操作,采用直接寻址技术。
在理想情况下,无须任何比较就可以找到待查关键字,查找的期望时间为O(1)。

27、Ethernet属于数据链路层协议
答案是正确的。因为:
数据链路层的主要协议有:
(1)Point-to-PointProtocal;PPP点到点
(2)Ethernet;以太网
(3)High-LevelDataLinkControlProtocal;HDLC高级链路控制协议
(4)FrameRelay;帧中继
(5)AsynchronousTransferMode;ATM


28、普通交换机和路由器工作在
a、数据链路层和传输层
b、链路层和网络层
c、都是网络层
d、网络层和传输层
答案是B,因为,
交换机主要工作在数据链路层(第二层)
路由器工作在网络层(第三层)。29、以太网的MTU值为
a、500b、1492c、1500d、1982
答案是C,因为
最大传输单元MTU=1500是国际规定的默认值,
是一个经过实验得到的可以最大效率传输数据的值。
倘若大于1500,数据传输速度就会变慢;
若小于1500,链路又得不到充分利用,减小了效率。


30、在一个WindowsSDK的基本应用程序框架中,有如下消息循环:
while(GetMessage(&Msg,NULL,0,0){
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
下面哪个消息使得该消息循环退出运行,从而终止整个应用程序的运行
a、WM_DESTROY b、WM_QUITc、WM_CLOSR d、WM_CREATE
答案是B,因为
WM_CLOSE:关闭应用程序窗口
WM_DESTROY:关闭应用程序
WM_QUIT:关闭消息循环
只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失)。


31、进程和线程最主要的区别:
a、CPU调度方式不同b、优先级不同
c、程序入口不同d、进程有独立的地址空间,线程共享地址空间
答案是D,
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,
而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,
一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,
但在进程切换时,耗费资源较大,效率要差一些。


32、以下哪项不适合用于进程间通讯
a、socketb、Pipec、共享内存d、全局变量
答案是D,


Windows中进程间通信方式有:
File,管道(Pipe),命名管道(namedpipe),信号(Signal),消息队列(Messagequeue),
共享内存(sharedmemory),内存映射(memory–mappedfile),信号量(semaphore),
套接口(Socket),命名事件。临界区事实上应该算是由信号量来保证的。
全局变量不能用于进程间通讯。

6. C语言笔试题!求答案!另送100积分!

第一题
char
*a="abc";
是把字符串“abc”的首地址赋值给指针变量a;
char
b[]="abc";
定义一个字符串数组,因为是字符串
“abc”最后有一个‘\0’
数组长度为4;
char
c[3]="abc"
写法有问题,由于数组大小给定为3,最后一个‘\0’写不进数组,有的编译器会报错。
第二题
1)
struct
结构体分配内存特点是:大小等于所有成员所点内存大小的和。
union
联合体分配内存特点是:大小等于成员中占内存最大的内存的大小。所以一共是4个int
13个char
答案是:4*4+13*1=29(相信自己做的)
2)
答案是3
PS:谁给的答案,坑爹呢吧
3)
答案是8
PS:不要被迷惑,这题是陷阱,指针的大小都是无符号长整型
大小是8
4)
答案是6,8(同上题),4。
第三题
1)
答案是
Output1
=
test1_1
Output1
=
test2
Output1
=
test1_1_1
2)(1)头文件没有标准输入输出
#include<stdio.h>
(9)错,左值为指针,右值为数组元素,不能赋值,所以应改为char
*s=&src[len]
(11)不应是指针之间的赋值,应该是内容赋值,所以改为
*d++=*s--;
(12)如果按%s即字符串输出的话,dest所指的字符串结尾没有‘\0'结尾可能出现溢出,解决的方法是在(12)前加一句
*d='\0';
有不清楚的扣729480205,一起学习

7. 计算机二级C语言笔试题和面试题答案目

如下这份计算机二级C语言笔试题目对于要考基计算机二级证书的朋友来说,应该会很有帮助,需要的朋友赶紧收藏吧!
一、选择题((1)-(10),(21)-(40)每题2分,(11)-(20)每题1分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

1. 下列叙述中正确的是

A 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D 上述三种说法都不对 答案:B

2. 下列叙述中正确的是

A 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D 上述三种说法都不对 答案:C

3. 软件测试的目的是

A 评估软件可靠性 B 发现并改正程序中的错误 C 改正程序中的错误

D 发现程序中的错误 答案:B

4. 下面描述中,不属于软件危机表现的是

A 软件过程不规范 B 软件开发生产率低 C 软件质量难以控制

D 软件成本不断提高 答案:A

5. 软件生命周期是指

A 软件产品从提出、实现、使用维护到停止使用退役的过程

B 软件从需求分析、设计、实现到测试完成的过程 C 软件的开发过程

D 软件的运行维护过程 答案:A

6. 面向对象方法中,继承是指

A 一组对象所具有的相似性质 B 一个对象具有另一个对象的性质 C 各对象之间的共同性质 D 类之间共享属性和操作的机制 答案:D

7. 层次型、网状型和关系型数据库划分原则是

A 记录长度 B 文件的大小 C 联系的复杂程度

D 数据之间的联系方式 答案:D

8. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是

A 一对一B 一对多C 多对多D 多对一 答案:C

9. 数据库设计中反映用户对数据要求的模式是

A 内模式B 概念模式C 外模式D 设计模式 答案:C

10. 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是

A 自然连接B 交C 投影D 并 答案:A

11. 以下关于结构化程序设计的叙述中正确的是

A 一个结构化程序必须同时由顺序、分支、循环三种结构组成

B 结构化程序使用goto语句会很便捷 C 在C语言中,程序的模块化是利用函数实现的

D 由三种基本结构构成的程序本文由论文联盟http://www.LWLm.coM收集整理只能解决小规模的问题 答案:C

12. 以下关于简单程序设计的步骤和顺序的说法中正确的是

A 确定算法后,整理并写出文档,最后进行编码和上机调试

B 首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C 先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D 先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 答案:D

13. 以下叙述中错误的是

A C程序在运行过程中所有计算都以二进制方式进行 B C程序在运行过程中所有计算都以十进制方式进行 C 所有C程序都需要编译链接无误后才能运行

D C程序中整型变量只能存放整数,实型变量只能存放浮点数 答案:B

14. 有以下定义:inta; longb; doublex,y;则以下选项中正确的表达式是

A a%(int)(x-y) B a=x!=y; C (a*y)%b D y=x+y=x 答案:C

15. 以下选项中能表示合法常量的是

A 整数:1,200 B 实数:1.5E2.0 C 字符斜杠:‘\’ D 字符串:"\007" 答案:C

16. 表达式a+=a-=a=9的值是

A 9 B _9 C 18 D 0 答案:D

17. 若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是

A a<>b+c B ch=getchar() C a==b+c D a++ 答案:A

18. 有以下程序

#include

main()

{inta=1,b=0;

if(!a) b++;

elsEif(a==0)if(a)b+=2;

elseb+=3;

printf(”%d\n”,b);



程序运行后的输出结果是

A 0 B 1 C 2 D 3 答案:C

20. 有以下程序

#include

main()

{int a=1,b=2;

while(a<6){b+=a;a+=2;b%二10;}

printf(”%d,%d\n”,a,b);



程序运行后的输出结果是

A 5,11 B 7,1 C 7,11 D 6,1 答案:D

21. 有以下程序

#include

main()

{int y=10;

while(y--);

printf(”Y=%d\n”,Y);



程序执行后的输出结果是

A y=0 B y= -1 C y=1 D while构成无限循环 答案:B

22. 有以下程序

#include

main()

{char s[”=”rstuv";

printf(”%c\n”,*s+2);



程序运行后的输出结果是

A tuv B 字符t的ASCII码值 C t D 出错 答案:D

23. 有以下程序

#include

#include

main()

{char x[]=”STRING”;

x[0”=0;x=’\0’;x[2”=’0’;

printf(”%d%d\n”,sizeof(x),strlen(x));



程序运行后的输出结果是

A 61 B 70 C 63 D 71 答案:B

24. 有以下程序

#include

Int f(intx);

main()

{intn=1,m;

m=f(f(f(n)));printf(”%d\n”,m);



intf(intx)

{returnx*2;}

程序运行后的输出结果是

A 1 B 2 C 4 D 8 答案:D

25. 以下程序段完全正确的是

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); 答案:D

26. 有定义语句:int *p[4];以下选项中与此语句等价的是

A intp[4]; B int**p; C int*(p“4”); D int (*p)“4”; 答案:D

27. 下列定义数组的语句中,正确的是

A B C intx[0..10]; D int x[]; 答案:B

28. 若要定义一个具有5个元素的整型数组,以下错误的定义语句是

A inta[5]=﹛0﹜; B intb[]={0,0,0,0,0}; C intc[2+3]; D inti=5,d[i]; 答案:A

29. 有以下程序

#include

voidf(int *p);

main()

{inta[5]={1,2,3,4,5},*r=a;

f(r);printf(”%d\n”;*r);



void f(int *p)

{p=p+3;printf(”%d,”,*p);}

程序运行后的输出结果是

A 1,4 B 4,4 C 3,1 D 4,1 答案:D

30. 有以下程序(函数fun只对下标为偶数的元素进行操作)

# include

void fun(int*a;int n)

{int i、j、k、t;

for (i=0;i

热点内容
pspfifa无缓存 发布:2025-01-24 16:45:13 浏览:164
androidhandler机制 发布:2025-01-24 16:41:10 浏览:935
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:572
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:931
安卓80如何识别存储卡权限 发布:2025-01-24 16:19:54 浏览:231
存储介质价格 发布:2025-01-24 16:19:18 浏览:150
删除多个表sql 发布:2025-01-24 16:10:57 浏览:595
安卓设备版本哪里看 发布:2025-01-24 16:06:00 浏览:549
编译错误参数不可选 发布:2025-01-24 16:00:51 浏览:289
仓储软件用什么服务器 发布:2025-01-24 16:00:03 浏览:626