C++第五章习题解答new

C++第五章习题解答new
C++第五章习题解答new

第5章指针与模板习题

一、.基本概念与基础知识自测题

5.1 填充题

5.1.1 数组定义时有三个要素:数组名,数组元素的(1)和数组元素的(2)。按元

素在数组中的位置进行访问,是通过(3)进行的,称为(4)或(5)访问。

为了使数组声明中数组的大小修改更为方便,总是将(6)用于声明数组长度。

答案:(1)类型

(2)数量

(3)下标运算符

(4)下标

(5)索引

(6)常变量

5.1.2 C/C++中的多维数组用的是一个(1)的定义,即多维数组的基本定义是(2)构

成的数组,三维数组的元素是(3)。

答案:(1)嵌套

(2)以数组作为元素

(3)二维数组

5.1.3 计算机内存是一维编址的,多维数组在内存中的存储(1),C/C++多维在内存中

的排列是(2)方式,即越(3)的下标变化(4)。设数组a有m行n列,每个元素占内存u个字节,则a[i][j]的首地址为(5)+ (6)。

答案:(1)必须要转化为一维方式,

(2)按行方式

(3)右

(4)越快

(5)i*n*u

(6)j*u

5.1.4 对于多维数组,(1)的大小是确定的,所谓“不检查数组边界”只是不检查(2)

的边界,而(3)的边界是在控制之中的,所以多维数组名作为函数的参数只可以(4)缺省。

答案:(1)较低各维的

(2)最高维(第一维)

(3)较低各维

(4)最高维

5.1.5 指针变量包含另一变量的(1)值,不可以任意给指针变量赋一个地址值,只能赋给

它(2)和(3)的地址。使用变量名来访问变量,是按(4)来直接存取变量称为(5)方式;而借助指针变量取得另一变量的地址,访问该变量称为(6)方式。

答案:(1)地址

(2)NULL

(3)已经分配了内存的变量的地址

(4)按变量的地址

(5)直接访问

(6)间接访问

5.1.6 固定指向一个对象的指针,称为(1),即(2),定义时const放在(3)。

而指向“常量”的指针称为(4),指针本身可以指向别的对象,但(5),定义时const放在(6)。

答案:(1)指针常量

(2)指针本身是常量

(3)const放在类型说明之后,变量名之前

(4)常量指针

(5)不能通过该指针修改对象

(6)const放在类型说明之前

5.1.7 数组名在表达式中被自动转换为(1)指针常量,数组名是地址,但数组名中放的

地址是(2),所以数组名(3)。这样数组名可以由(4)来代替,C++这样做使用时十分方便,但丢失了数组的另一要素(5),数组名是指向(6)的指针,而不是指向(7)的。编译器按数组定义的大小分配内存,但运行时(8),这会带来无法预知的严重错误。

答案:(1)数组第一个元素的

(2)不可改变的

(3)称指针常量

(4)指针

(5)数组元素的数量

(6)数组元素

(7)数组整体

(8)对数组的边界不加检测

5.1.8 有一个三维数组:

int z3d[2][3][4];

给出指向三维数组第i行第j列第k页元素的指针的三种表达方式(1),(2),(3)。再给出这些元素的三种表达方式(4),(5),(6)。

答案:(1)z3d[i][j]+k或&z3d[i][j][k]

(2)*(z3d[i]+j)+k

(3)*(*(z3d+i)+j)+k

(4)z3d[i][j][k]或*(z3d[i][j]+k)

(5)*(*(z3d[i]+j)+k)

(6)*(*(*(z3d+i)+j)+k)

5.2简答题

5.2.1物理上,C++是怎样访问数组元素的?请对访问方法作简单介绍。

答:物理上,C++语言的下标运算符[ ]是以指针作为操作数的,a[i]被编译系统解释为*(a+i),即表示为a所指(固定不可变)元素向后第i个元素。无论我们是以下标方式或指针方式存取数组元素时,系统都是转换为指针方法实现。这样做对多维数组尤其方便。

5.2.2什么是回溯算法?

答:回溯法是对枚举法的一种改进。回溯法的基本思想是,通过对问题的分析找出解决问题的线索,先在一个局部上找出满足问题条件的局部的解,然后逐步由局部解向整个问题的解的方向试探,若试探成功就得到问题的解,试探失败逐步向后退,改变局部解再向前试探。回溯法能避免枚举法的许多不必要的搜索,使问题比较快地得到解决。

5.2.3用数组名作为函数的参数时,可否加上数组的长度?怎样加?为什么?

答:被调函数中作为形式参数的一维数组不需要说明长度,即使说明了大小也不起作用,因为C++只传递数组首地址,而对数组边界不加检查。

5.2.4需要编写一个对多维数组通用的算法(即各维的大小未定),怎样才能把实参多维数

组的信息全部传递到函数中去?

答:最佳方法是用函数模板,多维数组用模板类型参数传递,各维的大小作为参数传递。也可以用一维数组加各维的大小都作为参数传递。

5.2.5解释运算符*和&的作用,运算符 和->的作用。

答:在应用指针变量时,“*”是间接引用(dereference)运算符,作用于一个指针类型的变量,访问该指针所指向的内存数据。因结果是内存中可寻址的数据。“&”是取地址运算符,作用于内存中一个可寻址的数据(如:变量,对象和数组元素等等),操作的结果是获得该数据的地址。

5.2.6什么是this指针?简述它的作用。

答:当我们在对象的外部访问该对象的公有成员时,必须指明是哪一个对象。但是当我们用对象的成员函数来访问本对象的成员时,在成员函数中只要给出成员名就可以实现对该对象成员的访问。但同一个类创建的多个对象共用同一份成员函数的拷贝。既然是同一份拷贝,那么成员函数又怎么知道是取哪一个对象的成员数据呢?其实每一个对象有一个隐藏的this指针,它始终指向该对象,并将该指针作为一个参数自动传递给该成员函数。这就是说,成员操作符总是要使用的,只不过在对象内是隐式的,即在对象内省略了this指针。

5.2.7指针变量与整型量的加减运算代表什么意义?

答:指针变量与整型量的加减表示移动指针,以指向当前目标前面或后面的若干个位置的目标。指针与整型量i的加减等于指针值(地址)与i*sizeof(目标类型)积的加减,得出新的地址。

5.2.8设a为数组名,那么a++是否合法?为什么?

答:非法。因为a是指针常量。

5.2.9指针作为函数的参数时,它传递的是什么?实参要用什么?而使用引用时实参要用

什么?何时只能用指针而不能用引用?

答:是地址,是指针所指向的变量或对象的内存首地址,在物理上讲我们传的是指针的值,与传其它变量是没有差异的,函数获得的是另一个变量的地址,在逻辑上讲我们是把另一个变量的地址传过去了,可以看作传地址。实参要用变量或对象的地址。而使用引用时实参要用变量或对象本身。实参为数组时,只能用指针而不能用引用,因为数组的引用不存在。

5.2.10指针作为函数的返回值时,应该注意什么?

答:指针指向的数据的生命期必须不仅仅在函数域中,函数消亡后,数据仍然存在。如果返回的指针,它所指的变量或对象已消亡,则该返回值无意义,这一点必须十分小心。总之直接使用指针不管是作为参数还是返回值,都要注意安全性。

5.2.11设有语句

char *ps=”It’s a book.”;

是否建立了一个字符串,并把”it’s a book.”作为其初值?随后又有语句:

*ps=”It’s a car”;

这又代表什么?是否正确。

答:没有建立字符串。后一条语句要求把字符串赋给是错的。

二、.编程与综合练习题

5.3 打印杨辉三角形(10行)。使用二维数组并利用每个系数等于其肩上两系数之和。解:好的算法无特例,二维数组共用11列,第1列全0,方便计算

#include

void main(){

int a[10][11]={0,1},i,j;//初始化时写好第1行,其余各行全0

for(i=1;i<10;i++)//为了全部算法无特例,共用11列,第1列全0,方便计算for(j=1;j<=i+1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++){

for(j=1;j<=i+1;j++) cout<

cout<

}

}

5.4 将[例5.5]改用一维数组,附加行、列参数,实现通用算法。

解:用一维数组,附加行、列参数,实现通用算法难度大。

#include

#include

void inverse(int[], int[],int,int);//注意数组最高维可缺省,例6.9因初学未省,6.9_1已考虑

void multi(int [], int [], int [],int,int,int);

void output(int [],int,int);

void main(){

int middle[6*3], result[6*4];//注意写作6*3等可清楚看出矩阵的行列

int matrix1[3*6]={8,10,12,23,1,3,5,7,9,2,4,6,34,45,56,2,4,6};

int matrix2[3*4]={3,2,1,0,-1,-2,9,8,7,6,5,4};

output(matrix1,3,6);

inverse(matrix1,middle,3,6);

output(middle,6,3);

output(matrix2,3,4);

multi(middle,matrix2,result,6,3,4);

output(result,6,4);

return;

}

void inverse(int matrix1_1[],int middle_1[],int a,int b){

int i,j;

for (i=0;i

for (j=0;j

middle_1[i+j*a]=matrix1_1[i*b+j];

return;

}

void multi(int middle_1[],int matrix2_1[],int result_1[],int a,int b,int c){ int i,j,k;

for (i=0;i

for (j=0;j

result_1[i*c+j] = 0;

for (k=0;k

result_1[i*c+j]+=middle_1[i*b+k]*matrix2_1[k*c+j];

}

}

return;

}

void output(int max_1[],int a,int b){

for (int i=0;i

for (int j=0;j

cout <

cout<<'\n';

}

cout<

return;

}

5.5 编写函数int atoi(char s[ ]),将字符串s转化为整型数返回。注意负数处理方法。解:用指针处理字符串非常方便。使用符号位来处理负数。

#include

int atoi(const char*s){

int temp=0,f=1;

const char *tp=s;

while(*tp!='-'&&(*tp<'0'||*tp>'9')) tp++;//去除串前部无效字符

if(*tp=='-'){//读负号

f=-1;

tp++;

}

if(*tp<'0'||*tp>'9') cout<<"error!"<='0'&&*tp<='9'){//转换数字串

temp=temp*10+*tp-48;

tp++;

}

return f*temp;

}

void main(){

char num[20];

cin.getline(num,19);

cout<

}

5.6 有如下定义:

int ival=60021;

int *ip;

double *dp;

下面哪些赋值非法或可能带来错误,并加以讨论。

ival=*ip; ival=ip; *ip=ival; ip=ival; *ip=&ival;

ip=&ival; dp=ip; dp=*ip; *dp=*ip;

解:5.3 有如下定义:

int ival=60021;

int *ip;

double *dp;

下面哪些赋值非法或可能带来错误,并加以讨论。

ival=*ip; ival=ip; *ip=ival; ip=ival; *ip=&ival;

ip=&ival; dp=ip; dp=*ip; *dp=*ip;

解:ival=*ip; 错,未确定指针ip初值,用随机内存地址中的数据给ival赋值是危险的。但语法对。

ival=ip; 错,赋值类型错,指针型不能赋给整型。

*ip=ival; 错,未确定指针ip初值,用ival给随机内存赋值是危险的。但语法对。

ip=ival; 错,赋值类型错,整型不能赋给指针型。

*ip=&ival; 错,赋值类型错,地址(指针型)不能赋给整型。

ip=&ival; 对,地址赋给指针型。

dp=ip; 错,整型指针不能赋给双精度指针。

dp=*ip; 错,赋值类型错,整型不能赋给指针型。

*dp=*ip; 对,赋值类型转换

5.7 编程定义一个整型、一个双精度型、一个字符型的指针,并赋初值,然后显示各指针

所指目标的值与地址,各指针的值与指针本身的地址及各指针所占字节数(长度)。

*其中地址用十六进制显示。

解:注意:字符指针输出是字符串,必须强制转换为无类型指针

#include

void main(){

int *ip,ival=100;

double *dp,dval=99.9;

char *cp,cval='A';

ip=&ival;

dp=&dval;

cp=&cval;

cout<<*ip<<'\t'<<&*ip<<'\t'<

cout<<*dp<<'\t'<<&*dp<<'\t'<

cout<<*cp<<'\t'<<(void*)&*cp<<'\t'<

//字符指针输出是字符串,必须强制转换为无类型指针

cout<<*cp<<'\t'<<&*cp<<'\t'<

//输出A开头的字符串

cout<

cout<

cout<<(void*)cp<<'\t'<<&cp<<'\t'<

}

内存分配解释:速度优化时通常以字(4字节)为单位(开始地址可被4整除)给变量安排内存。cval仅用一个字节,也安排了4个字节。

5.8 分别编写下列字符串处理函数

(1)char *strcat (char *s,const char *ct);

将串ct接到串s的后面,形成一个长串。【例6.7】以数组为参数,现用指针为参数。

(2)int strlen(const char * s);

求字符串长度的函数,返回串长(不包括串结束符)。

(3)char * reverse (char *);

反置字符串s,即可将“break”成为“kaerb”。

(4)char * strchr( const char *cs,char c);

查找字符c在串cs中第一次出现的位置,返回指向该字符的指针,若没有出现则返回Null。

(5)char *strstr (const char *cs1,const char *cs2);

返回串cs2作为子串在cs1中第一次出现的位置,若没有出现则返回Null。

解:为了函数的通用性,有些可不要返回值的函数,也保留返回值。反置字符串函数,从串两头的指针同时向中间移动,重合或交错时停止。查找子串,先找子串的第一个字符,再核对子串其他字符。

#include

char* strcat(char* s,const char* ct){

while(*s) s++;//*S作为条件,等效*S!=0

while(*s++=*ct++);

return s;

}

int strlen(const char* s){

int i=0;

while(*s++) i++;

return i;

}

char* reverse (char* s){

char temp,* temp1=s,* temp2=s;

while(*temp2) temp2++;

temp2--;//指针移回串尾

while(temp2-temp1>0){

//注意此处,从串两头的指针同时向中间移动,重合或交错时停止

temp=*temp1;

*temp1=*temp2;

*temp2=temp;

temp1++;

temp2--;

}

return s;

}

char* strchr( const char*cs,char c){

while(*cs!=c&&*cs) cs++;

if(*cs==0) cs=NULL; //未找到返回NALL

return (char*)cs;

}

char *strstr (const char *cs1,const char *cs2){

char *temp;

char *temp1=(char*)cs2;

while(*cs1){//只要主串还有字符未查,则继续

while(*cs1!=*cs2&&*cs1) cs1++;//找到主串含有子串的第一个字符,或主串查完停止

temp=(char*)cs1;

temp1=(char*)cs2;

if(*cs1){//核对子串其他字符

while(*cs1++==*temp1++||*temp1);

if(*temp1==0) return temp;//找到子串返回

}

}

return NULL; //未找到返回NAL

}

void main(){

char a[40]="李明";

char b[20]="是东南大学学生";

char c[40]="Southeast University";

char *cp;

cout<

cout<

strcat(a,b);

cout<<"字符串连接后:"<

cout<

cout<<"字符串长度为:"<

cout<

cp=strchr(c,'U');

if(cp==NULL) cout<<"未找到"<

else cout<

cp=strchr(c,'A');

if(cp==NULL) cout<<"未找到"<

else cout<

cout<

cp=strstr(a,"东南");

if(cp!=NULL) cout<

else cout<<"未找到"<

cp=strstr(a,"西北");

if(cp==NULL) cout<<"未找到"<

else cout<

}

5.9使用递归和非递归的两种方法编写函数

char *itoa (int n,char *string);

将整数n转换为十进制表示的字符串。(在非递归方法中,可使用reverse()函数。)解:递归方法分析。难度大,可用图解法:

每次调用除以10,以去除最后一位,以n=3657为例。

由此图可见,由string指向应填入的字符数组的相应位置。

由调用的最底层开始,回归时填入,每次回归,指针后移一位,由此得

char * itoal(int n,char *string){

if(n/10) string=itoal(n/10,string);

*string++=n%10+48;//字符,ASCII码

return string;

}

考虑,数字串结束符和负数,得完整的函数。

char * itoal(int n, char *string){

if(n<0){

*string++=’_’;

n=-n;

}

if(n/10)string=itoal(n/10,string);

*string++=n%10+48;

*string=’\0’;

return string;

}

源代码:

#include

char* reverse (char* s){

char temp,* temp1=s,* temp2=s;

while(*temp2) temp2++;

temp2--;//指针移回串尾

while(temp2-temp1>0){//注意此处,从串两头的指针同时向中间移动,重合或交错时停止

temp=*temp1;

*temp1=*temp2;

*temp2=temp;

temp1++;

temp2--;

}

return s;

}

char *itoa (int n,char *string){

char *temp=string;

if(n<0){

*temp++='-';

n=-n;

}

do{//注意个位放在前了

*temp++=n%10+48;

}while(n=n/10);//显式的循环

*temp='\0';

if(*string=='-') temp=string+1;//有负号仅反转数字部分

else temp=string;

reverse(temp);//个位放到后面

return string;

}

char *itoa1 (int n,char *string){

if(n/10) string=itoa1(n/10,string);//隐式循环

*string++=n%10+48;//第一次是数字最高位放串的最前面的字符(不含符号),注意指

针移动在后

*string='\0';

return string;//注意返回的指针已后移一字符

}

char *itoa0 (int n,char *string){

if(n<0){

*string++='-';

n=-n;

}

itoa1(n,string);

return string;

}

void main(){

int num;

char st[20];

cin>>num;

cout<

cin>>num;

cout<

}

5.10 头文件中定义一个日期时间的结构:

struct tm{

int tm_sec; //秒

int tm_min; //分

int tm_hour; //时

int tm_mday; //日

int tm_mon; //月

int tm_year; //年,实际放的是与1970年的差,如1990年为20

int tm_wday; //星期

int tm_yday; //一年中的第几天

int tm_isdst; //是否夏时制

};

函数time_t time(time_t *tp)是提取当前时间,time_t即长整型,代表从1970年1月1日00:00:00开始计算的秒数(格林尼治时间),放在首地址为tp的单元内。

函数tm *localtime(const time_t *tp) 将tp地址单元中的时间转换为日期时间结构的当地时间;(函数tm *gmtime(const time_t *tp)转换为日期时间结构的格林尼治时间;)函数char *asctime(tm *tb)将tb地址单元中的tm结构的日期时间转换为字符串(供显示),它有固有格式,如:

Sun Sep 16 01:03:52 1973

利用以上资源,重新设计一个日期时间类(DataTime),要求定义对象时取当前时间进行初始化,显示时重取显示时刻的时间并显示出来。

解:

#include

#include

class datatime{

tm *timedata;

long allsecond;

char *tmp;

public:

datatime(){

time(&allsecond);

timedata=localtime(&allsecond);

tmp=asctime(timedata);

cout<

}

void gettime(){

allsecond=time(NULL);//time有两种用法

timedata=localtime(&allsecond);

tmp=asctime(timedata);

cout<

}

};

void main(){

char ch;

datatime dt;

cout<<"需要知道现在的日期和时间吗?(Y或N)"<

cin>>ch;

if(ch=='y'||'Y') dt.gettime();

}

5.11 完善自定义字符串类Mystring,应用静态数组,函数包括:构造函数、拷贝构造函数、

析构函数,并重载运算符=(拷贝),+(strcat),+=,<,= =(strcmp)。

解:此例既是对第5章的复习也是一个提高。拷贝构造函数的应用请参阅4.4.2节末尾两项说明,本例形参使用引用,仅在返回时调用了拷贝构造函数。运算符的重载请参阅4.5节。#include

const int n=256;

class mystring{

char string[n];

int maxsize;

int last;

public:

mystring(){

last=-1;

maxsize=n;

string[0]='\0';

cout<<"缺省构造函数"<

}

mystring(char *s){//本例为了简化,健壮性并不好

last=-1;

maxsize=n;

do{

last++;

string[last]=s[last];

}while(s[last]!='\0');

cout<<"构造函数"<

}

mystring(mystring & ms){

last=-1;

maxsize=n;

do{

last++;

string[last]=ms.string[last];

}while(last

cout<<"拷贝构造函数"<

}

~mystring(){

cout<<"析构函数"<

}

void show(){

//如需重载<<,则请参见9.3节,暂时未学到,替代的方法是改用一个show()函数cout<

}

mystring operator=(mystring &);

mystring operator+(mystring &);

mystring operator+=(mystring &);

bool operator<(mystring &);

bool operator==(mystring &);

};

mystring mystring::operator=(mystring & ms){

last=-1;

do{

last++;

string[last]=ms.string[last];

}while(last

return *this;

}

mystring mystring::operator+(mystring & ms){//注意+和+=的不同mystring temp(*this);

int i=-1;

https://www.360docs.net/doc/5814206734.html,st--;//串的结尾是结束符,连接时要覆盖掉

do{

https://www.360docs.net/doc/5814206734.html,st++;

i++;

temp.string[https://www.360docs.net/doc/5814206734.html,st]=ms.string[i];

}while(i

return temp;

}

mystring mystring::operator+=(mystring & ms){

int i=-1;

last--;//串的结尾是结束符,连接时要覆盖掉

do{

last++;

i++;

string[last]=ms.string[i];

}while(i

return *this;

}

bool mystring::operator<(mystring & ms){

int i=0,k;

do{

k=string[i]-ms.string[i];

i++;

}while(k==0&&i

if(k<0) return true;

if(i==last&&i!=https://www.360docs.net/doc/5814206734.html,st) return true;

return false;

}

bool mystring::operator==(mystring & ms){

int i=0,k;

if(last!=https://www.360docs.net/doc/5814206734.html,st) return false;

do{

k=string[i]-ms.string[i];

i++;

}while(k==0&&i

if(k!=0) return false;

else return true;

}

void main(){

char *sp1="东南大学",*sp2="交通学院",*sp3="学生";

mystring ms1(sp1),ms2(sp2),ms3(sp3),ms4(ms3),ms5=ms3,ms6;

ms1.show();

ms2.show();

ms3.show();

ms4.show();

ms5.show();

ms6.show();

ms4=ms1+ms3;

ms4.show();

ms1+=ms2;

ms1.show();

if(ms1

else {ms1.show();cout<<"应排在"<

if(ms1==ms6) cout<<"串ms1与串ms6相同"<

}

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

电工电子技术题库-new

电工电子技术试题库 2-10.基尔霍夫定律既适应于线性电路也适用与非线性电路。(√)2-11.一个6V的电压源与一个2A的电流源并联,等效仍是一个6V的电压源。 (√)3-2.回路分析法与网孔分析法的方法相同,只是用独立回路代替网孔而已。 (√)4-2. 运用施加电源法和开路电压、短路电流法,求解戴维宁等效电路的内阻时, 对原网络内部独立电源的处理方法是不同的。(√)4-3.有一个100Ω的负载要想从内阻为50Ω的电源获得最大功率,采用一个相同 的100Ω电阻与之并联即可。(×)4-4.叠加定理只适用于线性电路中。(√)5-3.u=5sin(20t+30°)V与i=7 sin(30t+10°)A的相位差为30°。(×) Q越大,则选择性越6-4. 不管是RLC串联谐振还是并联谐振电路,其品质因数 好,但通频带则越窄。(√)8-1.三要素法可适用于任何电路分析瞬变过程。(×)9-1.非线性元件其电压、电流关系(VCR)一定是非线性的。(×)9-2.非线性电阻元件其电压、电流关系一定是非线性的。(√)2.电阻、电感和电容在电路中都是储能元件。(×) 3.变压器只能把高电压转变为低电压。(×) 4.三相异步电动机主要由定子和转子两部分组成。(√) 5.磁感应强度是表示磁场中某点的磁场强弱和方向的物理量。(√) 7.在三相电路中手握一根导线不会触电。(×) 8.二极管具有单向导电性,当给二极管加上正向电压时,其伏安特性与电阻的伏安特性完全一样。(×) 9.用万用电表检测交流电压时,必须是红表笔接电源正极,黑表笔接电源负极。(×)

10.RLC 串联谐振电路的谐振频率为LC f π210= 。( √ ) 1、 电路中电流的方向是电子运动的方向。( F ) 2、 两个电阻相等的电阻并联,其等效电阻(即总电阻)比其中任何一个电阻的阻值都大。( F ) 3、 并联电路的电压与某支路的电阻值成正比,所以说并联电路中各支路的电流相等。( F ) 4、 导体在磁场中做切割磁力线运动时,导体内就会产生感应电动势。( T ) 5、 频率为50赫的交流电,其周期是0.02秒。( T ) 6、 在交流电路中,电阻是耗能元件,而纯电感或纯电容元件只有能量的往复交换,没有能量的消耗。( T ) 10、电流的频率越高,则电感元件的感抗值越小,而电容元件的容抗值越大。( F ) 12、交流电路中的阻抗包括电阻和电抗,而电抗又分为感抗和容抗。( T ) 13、在功率三角形中,功率因数角所对的直角边是P而不是Q。( F ) 15、三相交流对称电路中,如采用三角形接线时,线电压等于相电压三的平方根。( F ) 16、三相交流对称电路中,如采用星形接线时,线电流等于相电流三的平方根。( F ) 17、电路中任意两点之间的电压与参考点的选择有关。( F ) 18、电阻率比较高的材料主要用来制造各种电阻元件。( T )

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

电工电子技术精彩试题库

电工电子技术试题库 第五章磁路和变压器 一、填空题 1、磁感应强度是表示磁场某点的磁场()和()的物理量。 2、变压器由()和()组成。 3、变压器的三变作用是变()、变()和变()。 4、变压器线圈极性测定的方法有()法和()法。 5、变压器运行时其部存在()损耗和()损耗。 6、变压器原、副边电压和原、副边线圈匝数成()比。 7、变压器是根据()原理制成的()电器。 8、自耦变压器原、副边之间不仅有()耦合,而且有()的联系。 9、交流铁心线圈的磁路分为()磁路和()磁路。 10、在电力系统中传输电能的变压器称为()变压器。 二、选择题 1、铁磁性物质的磁导率()。 A、μr>1 Bμr=1 C、μr<1 D、μr>>1 2、变压器的负载为感性负载时,随着负载的增大副边电压将()。 A、上升 B、下降 C、不变 D、可能上升、也可能下降 3、变压器原、副边的电流和原、副边线圈匝数()。 A、成正比 B、成反比 C、无关 D、可能成正比,也可能成反比 4、一台变压器U1=220V,N1=100匝,N2=50匝,则U2=( )V。 A、110 B、440 C、220 D、50 5、Y,yn联接的三相变压器常用于低压为()电力变压器。 A、220V B、500V C、110V D、400V 6、磁场强度和磁场中某点的磁感应强度()。 A、成正比 B、成反比 C、相等 D、无关 7、变压器的额定容量S n表示()。 A、输入的视在功率 B、输出的视在功率 C、输入的有功功率 D、输出的有功功率

8、交流铁心线圈的主磁通与电源电压()。 A、成正比 B、成反比 C、无关 D、相等 9、变压器的变比K>1时,变压器为( )。 A、升压变压器 B、降压变压器 C、升压降压变压器 D、电流互感器 10、变压器副边负载增加时,变压器的铁耗()。 A、增大 B、减少 C、不变 D、可能增加也可能减少 三、分析题 1、变压器铁心起什么作用? 2、试分析电力变压器实现能量传递的原理? 3、在远距离输送电能的过程中为什么要采用高压输送? 4、变压器有什么用途? 5、变压器负载时引起副边端电压变化的原因是什么? 6、一台50Hz的变压器,误将原边接在相同额定电压的直流电源上会出现什么后果?为什么? 7、变压器空载运行时,原线圈加交流额定电压,这时原线圈的电阻R1很小,为什么空载电流I0却不大? 8、当变压器原边加额定电压,原线圈的匝数减少时,空载电流、铁损,副边空载时的电压变比将如何变化? 9、一台变压器U1N/U2N=220/110V,如果将副边接到220V电源上,会出现什么后果?为什么? 10、一台额定频率为50Hz的变压器,能否用于25Hz的交流电路中,为什么? 四、计算题 1、一台单相变压器,S N=50kV A,U1N/U2N=10 kV/400V,求原、副边的额定电流I1N、 I2N。 2、一台三相变压器,原、副边都为Y形联接,S N=180kV A,U1N/U2N=1000 /400V, 铁心截面积S=160cm2,铁心最大磁密B m=1.445T,求N1、N2。 3、一台单相变压器U1N/U2N=220/280V,铁心的最大磁密B m=0.96T,截面积S= 13cm2,求N1、N2。 4、一台三相变压器,原边为Y形联接、副边为Δ形联接,S N=5000kV A,U1N/U2N=10

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

电工电子技术试题库及答案2012

2012级机电、数控电工电子技术试题库 一、填空题(共133题,每空一分) 1、电力系统中一般以大地为参考点,参考点的电位为 0伏电位。 2、欧姆定律一般可分为部分电路的欧姆定律和全电路欧姆定律。 3、部分电路的欧姆定律是用来说明电路中电压、电流和电阻三个物理量之间关系的定律。 4、全电路欧姆定律,说明了回路中电流Ⅰ与电源电动势的代数和成比,而与回路中的及 之和成反比。 5、导体电阻的单位是欧姆,简称欧,用符号表示,而电阻率则用符号表示。 6、已知电源电动势为E,电源的内阻压降为U0,则电源的端电压U= E-U O。 7、有一照明线路,电源端电压为220伏,负载电流为10安,线路的总阻抗为0.2欧姆,那么负载端电压为218 伏。 8、串联电路中的处处相等,总电压等于各电阻上之和。 9、一只220伏15瓦的灯泡与一只220伏100瓦的灯泡串联后,接到220伏电源上,则15 瓦灯泡较亮, 而 100 瓦灯泡较暗。 10、1度电就是1千瓦的功率做功1小时所消耗的电量,所以它的单位又叫千瓦时。 11、频率是单位时间内交流电重复变化的次数。 12、某正弦交流电流,频率为50赫,最大值为20安,初相位为-40°,此正弦交流电的瞬时值表达式为 u=20sin(314t- 40°) ,相量式为。 13、如果用交流电压表测量某交流电压,其读数为380伏,此交流电压的最大值为537伏。 14、把一个100欧的电阻元件接到频率为50赫、电压为10伏的正弦交流电源上,其电流为0.1A 安。 15、有一电感L为0.08亨的纯电感线圈,通过频率为50赫的交流电流,其感抗X L=25.12 欧。如通过电流的 频率为10000赫,其感抗X L=5024 欧。 16、一个10微法的电容接在50赫的交流电源上,其容抗X C=318欧,如接在2000赫的交流电源上,它的容抗 X C=7.95 欧。 17、某正弦交流电流为i=100sin(6280t- π/4)毫安,它的频率f=1000Hz ,周期T=0.001 秒,角频 率ω= 6280 ,最大值Im= 100mA,有效值I= 100/1.414 mA ,初相位φ=π/4 。 18、已知两交流电流分别为i1=15sin(314t+45°)安,i2=10sin(314t-30°)安,它们的相位差为75 °。 19、在纯电感交流电路中,电感元件两端的电压相位超前电流90度。 20、在纯电容交流电路中,电容元件两端的电压相位滞后电流90 度。 21、在纯电阻交流电路中,电阻元件通过的电流与它两端的电压相位同相。 22、交流电路中的有功功率用符号P 表示,其单位是 W 。 23、交流电路中的无功功率用符号 Q 表示,其单位是VAR 。 24、交流电路中的视在功率用符号S 表示,其单位是 VA 。 25、三相正弦交流电的相序,就是三相交流电到达最大值的顺序。 26、如三相对称负载采用星形接法时,则负载的相电压等于电源的相电压,线电流等于相电流的1 倍。 27、如三相对称负载采用三角形接法时,则负载的相电压等于电源的线电压,线电流等于相电流的3倍。 28、在三相对称电路中,已知线电压U、线电流I及功率因数角φ,则有功功率P=UICOSφ,无功功率Q=UI SINφ,视在功率S=UI。 29、已知某电源的相电压为6千伏,如将其接成星形,它的线电压等于 63伏。 30、当三相发电机的三相绕组联成星形时,其线电压为380伏,它的相电压为 220 伏。 31、有一台三相异步电动机,额定电压为380伏,三角形联接,若测出线电流为30安,那么通过每相绕组的电流 等于30/3安。

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

[整理]C语言试题及答案.

一、问答题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf( "b,c,d:%d,%d,%d ",b,c,d); return 0; } 答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全

(完整版)《电工电子技术基础》试题库(附有答案)

一、填空题 1.已知图中 U1=2V, U2=-8V,则U AB=-10。 2.电路的三种工作状态是通路、断路、短路。 3.有三个6Ω的电阻,若把它们串联,等效电阻是 18 Ω;若把它们并联,等效电阻 2Ω;若两个并联后再与第三个串联,等效电阻是 9 Ω。 4.用电流表测量电流时,应把电流表串联在被测电路中;用电压表测量电压时,应把电压表与被测电路并联。 5.电路中任意一个闭合路径称为回路;三条或三条以上支路的交点称为节点。 6.电路如图所示,设U=12V、I=2A、R=6Ω,则U AB= -24 V。 7.直流电路如图所示,R1所消耗的功率为2W,则R2的阻值应为 2 Ω。 8.电路中电位的参考点发生变化后,其他各点的电位均发生变化。 9.在直流电路中,电感可以看作短路,电容可以看作断路。 9.我国工业交流电采用的标准频率是 50 Hz。 10.三相对称负载作三角形联接时,线电流I L与相电流I P间的关系是:I P=3 I L。 11.电阻元件是耗能元件,电容元件是储能元件。

12.已知一正弦电压u=311sin(628t-60o)V ,则其最大值为 311 V ,频率为 100 Hz ,初相位为 -60o 。 13.在纯电阻交流电路中,已知电路端电压u=311sin(314t-60o)V ,电阻R=10Ω,则电流I=22A,电压与电流的相位差φ= 0o ,电阻消耗的功率P= 4840 W 。 14.三角形联结的三相对称负载,若线电压为380 V ,则相电压为 380 V ;若相电流为10 A ,则线电流为 17.32 A 。 15.式Q C =I 2X C 是表示电容元件在正弦电路中的 无功 功率计算公式。 16.正弦交流电压的最大值U m 与其有效值U 之比为 2 。 17.电感元件是一种储能元件,可将输入的电能转化为 磁场 能量储存起来。 18.若三相电动势依次达到最大值的次序为e 1—e 2—e 3,则称此种相序为 正序 。 19.在正弦交流电路中,电源的频率越高,电感元件的感抗越 大 。 20.已知正弦交流电压的有效值为200V ,频率为100Hz ,初相角为30o,则其瞬时值表达式u= 282.8sin (628t+30o) 。 21.正弦量的三要素是 最大值或有效值 、 频率 和 初相位 。 22.对称三相电源是指三个 幅值 相同、 频率 相同和 相位互差120o 的电动势电源。 23.电路有 通路 、 开路 和 短路 三种工作状态。当电路中电流0 R U I S 、端电压U =0时,此种状态称作 短路 ,这种情况下电源产生的功率全部消耗在 内阻 上。

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

《电工电子技术基础》试题库(附有答案)70067

、填空题 1 已知图中U i = 2V, U2= -8V,贝y U B=_-10_ 2. 电路的三种工作状态是通路、断路、短路 3. 有三个6Q的电阻,若把它们串联,等效电阻是18 Q;若把它们并联,等效电阻2Q;若两个并联后再与第三个串联,等效电阻是_9—Q。 4. 用电流表测量电流时,应把电流表串联在被测电路中;用电压表 测量电压时,应把电压表与被测电路并联。 5. 电路中任意一个闭合路径称为回路;三条或三条以上支路的交点称为节点。 6. 电路如图所示,设U=12V I=2A、R=6Q,贝S U B= -24 V 7. 直流电路如图所示,R所消耗的功率为2W则R的阻值应为2—Q &电路中电位的参考点发生变化后,其他各点的电位均发生变化 9. 在直流电路中,电感可以看作_短路—,电容可以看作_断路— 9.我国工业交流电采用的标准频率是50 Hz 10. 三相对称负载作三角形联接时,线电流I I与相电流I P间的关系是: I P= . 3 I L。

11. 电阻元件是耗能元件,电容元件是储能元件 12. 已知一正弦电压u=311sin(628t-60 o )V,则其最大值为311 V , 频率为100 Hz,初相位为-60 o 。 13. 在纯电阻交流电路中,已知电路端电压u=311sin(314t-60 o )V,电阻 R=10Q,则电流I=22A,电压与电流的相位差? = 0 o ,电阻消耗的功率P= 4840 W。 24 .表征正弦交流电振荡幅度的量是它的 _最大值表征正弦交流电随时间变 化快慢程度的量是_角频率3_;表征正弦交流电起始位置时的量称为它的—初相_。 25 .在RLC串联电路中,已知电流为5A,电阻为30 Q,感抗为40Q, 容抗为80Q,那么电路的阻抗为_50Q_,该电路为_容_性电路。电路中吸收的有功功率为_750W,吸收的无功功率为_1000var_。 26 .对称三相负载作丫接,接在380V的三相四线制电源上。此时负载 端的相电压等于1倍的线电压;相电流等于1倍的线电流;中线电流等于 寸3 0_。 27. 铁磁材料分为—软磁—材料、—硬磁_材料和—矩磁—材料三种。 28. 变压器除了可以改变_交变电压、—交变电流_之外还可以用来变换阻 抗。 29. 接触器的电磁机构由—吸引线圈_、_静铁心_和_动铁心_三部分组成。 30 .变压器运行中,绕组中电流的热效应所引起的损耗称为 _铜_损耗;交 变磁场在铁心中所引起的_磁滞—损耗和—涡流—损耗合称为_铁_损耗。 31、Y—△形降压启动是指电动机启动时,把定子绕组接成_Y形—,以降低启动电压,限制启动电流,待电动机启动后,再把定子绕组改接成_△形,使

C语言选择题(含答案)

C语言选择题(含答案) 选择题 1.以下叙述正确的是_____。 A) 在C程序中,main函数必须位于程序的最前面。 B) C语言本身没有输入输出语句。 C) C程序的每行只能写一条语句。 D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 2.下面四个选项中,均是不合法的用户标识符的选项是。 A) A B) float C) b-a D) _123 P_0 1a0 goto temp do _A int INT 3、下列四个选项中都是合法的转义字符的 A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’ 4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 5、若有代数式,则不正确的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 6、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。则以 下不能满足要求的表达式是_________。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 7、以下程序的运行结果是 : main() { int m=6;

if(m++> 6) printf(" %d\n",m); e1se printf("%d\n",--m ); } A)4 B)5 C) 7 D) 6 8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 : if(a正确的输出结果为 main() { int x,y,z scanf("%d%d%d",&x,&y,&z ); printf(“x+y+z=%d\n” ,x+y+z);。 } A)x+y+z=48 B)x+y+z=35 C)x+y+z=35 D)不确定值 10、已知各变量的类型说明如下 int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是 : A) x%(-3) B) w+=-2

c言语题库及答案

1.调试示例,输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 源程序(有错误) #include #include void main() { int i,j,k,m,n; printf(“输入正整数的个数n:”); scanf(“%d”,&n); printf(“输入%d个正整数\n”); for(j=0;jn) printf(“%d是一个素数!\n”,m); else printf(“%d不是一个素数!\n”,m); } } #include #include void main() { int i,j,k,m,n; printf("输入正整数的个数n:"); scanf("%d",&n); printf("输入%d个正整数\n",n); k=n; for(j=0;jn) printf("%d是一个素数!\n",m); else printf("%d不是一个素数!\n",m); } } 输入:5 再输入:1 2 3 4 5 输出:

1是一个素数! 2是一个素数! 3是一个素数! 4不是一个素数! 5是一个素数! 2.编程,输出101-115之间不能被3整除的数,每行输出5个。要求使用continue语句。输入输出救命: 101 103 104 106 107 109 110 112 113 115 思考:输入一批整数(Ctrl+Z),输出其中不能被3整除的奇数。 #include void main() { int i,j=0; for(i=101;i<=115;i++) { if(i%3==0) continue; else { j++; printf("%-4d",i); if(j%5==0) printf("\n"); } } } 输出: 101 103 104 106 107 109 110 112 113 115 3.编程,输入一个正整数,再输入n个整数,输出其中的最大值,输入的每个数都在100-200之间,如果某个输入数不在100-200之间,则只处理在该数这前输入的数据。 输入示例(共运行2次) 第一次运行: 输入n:5 输入5个整数:100 155 187 192 168 最大值是192 第二次运行: 输入n:6 输入6个整数:100 155 187 292 168 199

电工电子技术机考题库答案

《电工电子技术》机考题库及答案自己 单项选择题: 1.题图所示电路中,电阻R 1支路的电流I为 ---------------------- 。( B ) A —3A ; B 5A ; C 2A 2. 题图所示电路为三个二端网络,其中 --------------------- 可以相互等效变换。 ( C ) A (a)和(b); B (b)和(c); C (a)和(c) 3. 题图所示电路中,由R 1、R 2 支路的电流可计算出R 3 支路的电流I为 --------------------- 。( C ) A 5A ; B 15A ; C —15A 4. 题图所示电路中,两端电压U与电路中各参数的相互关系可表示为 --------------------- 。( A ) A U=IR+U 0; B U=IR—U ; C U=—IR— U 5. 题图所示电路中,电压U ab 的数值是 --------------------- 。( B ) A 5V ; B 10V ; C 15V 6. 题图所示电路中,a点电位V a 为 --------------------- 。 ( B ) A 8V ; B 7V ; C 9V 7. 题图所示电路中,电压源U S 等于 --------------------- 。( C ) A —2V ; B —1V ; C 1V 8.三相电路中,三相对称负载做Y连接,三个线电流均为3A,则中线电流是 ----------------- 。( C ) A 3A ; B 6A ; C 0A 9. 题图所示电路中,电源电压不变,而频率升高,各灯泡的亮度变化是 --------------------- 。( B ) A 灯泡A变亮; B 灯泡B变亮; C 纯电感电路 10. 题图所示是某一支路的电压u和电流i的波形,可以判断该支路是 ---------------------。 ( A ) A 电阻电感串联电路; B 电阻电容串联电路; C 纯电感电路 11.通常所说的交流电压220V是指它的 --------------------- 。( A ) A 有效值; B 平均值; C 最大值 12.已知电路某元件的电压u和电流i分别为u=3cos(314t+1500)V, i=5sin(314t+1500)A, 则该元件的性质是 ---------- ( B ) A 电容; B 电感; C 电阻 13. 已知电路某元件的电压u和电流i分别为u=141cos(314t+600)V, i=7sin(314t— 1200)A,则该元件的性质是 ----- ( A ) A 电容; B 电感; C 电阻 14.在RLC串联电路中,如果调大电感L,则电路的 --------------------- 。( A ) A 感性增强; B 容性增强; C 性质不变 15.题图所示变压器,已知初级绕组N 1=300匝,R=8Ω,从原方看入的电阻R i 是72Ω,则 变压器次级绕组N 2为 ----- ( C ) A 200匝; B 300匝; C 100匝

相关文档
最新文档