省二级选择题题库C语言..doc_第1页
省二级选择题题库C语言..doc_第2页
省二级选择题题库C语言..doc_第3页
省二级选择题题库C语言..doc_第4页
省二级选择题题库C语言..doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51001.以下数组定义中,正确的是()。AA) int a5=0;B) int a=0 1 2;C) int a5=0;D) int a;51002.下列数组定义中,正确的是().AA) int a10;B) int n=10,an;C) int N=10;int aN;D) int n;scanf(%d,&n); int an;51003.已知int a10;则对a数组元素引用不正确的是().AA) a10B) a3+5C) a10-10D) a551004.若有定义:int a3=0,1,2;则a1的值为( )。BA) 0B) 1C) 2D) 351005.若有定义:int a5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为( )。AA) 6B) 5C) 1D) 251006.以下能对一维数组a进行正确初始化的语句是( )。DA) int a5=(0,0,0,0,0);B) int a5=0;C) int a5=1,2,3,4,5,6,7;D) int a=0;51007.下面程序段的运行结果是( )。Dint i=0,a=3,4,5,4,3;do ai+; while(a+i5);for(i=0;i5);for(i=0;i2);for(i=0;i5;i+) printf(“%d”,ai);A) 11 2 3 4 5B) 1 2 3 4 5C) 11 12 13 14 15D) 11 12 3 4 5 51101.设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,i,j,s=0;for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij;则执行该程序段后,s的值是()。CA) 0B) 1C) 2D) 351102.有如下定义:int a3=1,2,3,4,5,6,7,8;则数组a的行数是().BA) 2B) 3C) 4D) 无法确定的51103.以下数组定义中,正确的是()。DA) int a23=1,2,3,4,5,6,7;B) int a=1,2,3,4,5,6,7,8,9;C) int a2= 1,2,3,4,5,6;D) int a4= 6;51104.若有定义:int a34=1,2,0,1,2,3;则a11的值为()。AA) 0B) 1,2C) 1D) 351105.若有定义:int a33;则表达式&a21-a的值是().AA) 7B) 8C) 6D) 951106.若有定义:int i=0,x=0;int a33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为( )。Cfor (;i3;i+) x+=ai2-i;A) 0B) 12C) 15D) 1851107.若有定义int a23;则对数组元素的非法引用是( )。DA) a01/2B) a11C) a4-40D) a0351108.以下数组定义中,正确的是( )。CA) int a2=1,2,3,4,5;B) int a2=0,;C) int a22=1,2,3;D) int a=1,2,3,4;51109.若有定义int a3=1,2,3,4,5,6,7,8,9;则表达式sizeof(a)/sizeof(a0)的值为()。DA) 3B) 4C) 5D) 951201.设有以下变量定义: char str1=string,str28,*str3,*str4=string;( )是正确的。AA) strcpy(str1,China);B) str2=China;C) strcpy(*str3,China);D) strcpy(str40,China);51202.有如下定义:char str6=a,b,0,e,f;则语句:printf(“%s”,str);的输出结果是()。DA) abB) abdefC) ab0D) ab51203.设有如下数组定义: char str8= FuJian;则分配给数组str的存储空间是( )个字节。CA) 6B) 7C) 8D) 951204.若有定义:char a=abcdef;char b=xyz;则以下程序段运行后屏幕输出为( )。Bstrcpy(a,b);printf(%c,a2);A) cB) zC) 0D) d51205.以下程序段运行后屏幕输出为( )。Cchar a=abc0mis;printf(%d,strlen(a);A) 5B) 8C) 3D) 451206.若有定义:int a=2;则语句a=strcmp(miss,miss);运行后a的值为().BA) 1B) 0C) -1D) 251207.以下程序段运行后屏幕输出为( )。B char str=abcd; printf(%d,strlen(str);A) 4B) 5C) 6D) 751208.以下程序段运行后屏幕输出为( )。Achar str80;strcpy(str,hello);printf(%d,strlen(str);A) 5B) 6C) 7D) 8051209.若有定义:char str16=abcdm,*ps,*str2=abcdef;( )是正确的。BA) strcpy(str1,str2); B) 表达式strcmp(str1,str2)的值大于0C) str1=str2;D) 表达式strlen(str1)的值为651301. 设有如下函数定义:int fun(char *str) char *p=str; while ( *p != 0) p+; return (p-str);则以下语句执行后的输出结果是( )。Aprintf(%dn,fun(Student);A) 7B) 8C) 9D) 1051302.以下程序的运行结果是( )。Aint fun(int array44) int j; for(j=0;j4;j+) printf(%2d,array2j); printf(n);main() int a44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0; fun(a);A) 2 0 0 5B) 1 0 0 4C) 0 1 2 0D) 0 4 5 051303.如下fun函数的类型是( )。Cfun(float x)double y; int z ; y=x * x ; z=(int)y ; return(z);A) voidB) doubleC) intD) float51304.以下程序运行后屏幕输出为( )。B#includeint f(int x,int y) return(x+y);main() int a=2,b=3,c; c=f(a,b); printf(%d+%d=%dn,a,b,c);A) 0B) 2+3=5 C) 2+3=0D) 3+2=551305.以下程序运行后屏幕输出为( )。D#includeint a=2,b=3;int max(int a,int b) int c; c=ab?a:b; return(c);main() int a=4; printf(%d,max(a,b);A) 2,3B) 2C) 3D) 451306.以下程序运行后屏幕输出为( )。B#includevoid f(int i) int a=2; a=i+; printf(%d,a);main() int a=1,c=3; f(c); a=c+; printf(%d,a);A) 4,3B) 3,3C) 4,5D) 3,551307.若有如下函数定义:int fun() static int k=0; return +k;以下程序段运行后屏幕输出为( )。Dint i;for(i=1;i=5;i+) fun();printf(%d,fun();A) 0B) 1C) 5D) 651308.下面程序的输出结果是()。D#includeint global=100;fun()int global=5;return +global;void main()printf(“%dn”,fun();A) 100B) 101C) 5D) 651309.下列关于C语言函数的描述中,正确的是()。BA) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C) 函数的定义和函数的调用都可以嵌套D) 函数的定义和函数的调用都不可以嵌套51401.若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是( )。Dint z,a=15,b=100;z=MOD(b,a);A) 100B) 15C) 11D) 1051402.以下叙述中,正确的是()。BA) “#define PRICE=30”定义了与30等价的符号常量PRICEB) 预编译处理命令行都必须以“#”开头C) 宏名只能包含大写字母和数字字符D) 在程序的一行上可以书写几个有效的宏定义51403.以下叙述中,正确的是()。AA) 宏展开不占用运行时间,只占用编译时间B) 预编译处理命令行必须以分号结束C) 一个源程序只能有一个预编译处理命令行D) 使用带参数的宏定义时,应该说明每个参数的数据类型51404.以下的叙述不正确的是().CA) 宏展开不占用运行时间,只占用编译时间B) 宏名无类型C) 宏名必须用大写字母表示D) 预处理命令行都必须以#号开始51405.若有定义:#define PI 3,则表达式PI*2*2的值为( )。AA) 12B) 4C) 3D) 不确定51406.以下程序运行后,屏幕输出为( )。C#define MIN(a,b) (a)(b)?(a):(b)main()int x=2,y=3,z; z=2*MIN(x,y); printf(%d,z);A) 2B) 3C) 4D) 651407.下面程序的是出结果是()。A#include #define SQR(x) (x*x) void main() int a,b=3;a=SQR(b+2);printf(n%d,a);A) 11B) 25C) 不定值D) 产生错误51408.下面程序的输出结果是( )。C#include #define ONE 1#define TWO ONE+1#define THREE TWO+1void main() printf(%dn,THREE-ONE);A) 产生错误B) 1C) 2D) 351409.以下叙述正确的是()。BA) 预处理命令行必须位于C源程序的起始位置B) 在C语言中,预处理命令行都以#开头C) 每个C程序必须在开头包含预处理命令行:#includeD) C语言的预处理不能实现宏定义和条件编译的功能51501.设有以下语句,则( )是对a数组元素的不正确引用,其中0i10。D int a10=0,1,2,3,4,5,6,7,8,9, *p=a;A) ap-aB) *(&ai)C) piD) *(*(a+i)51502.对于基类型相同的两个指针变量之间,不能进行的运算是( )。CA) B) =C) +D) -51503.执行以下程序段的输出结果是( )。B int a=10,*p=&a; printf(%d,+*p);A) 10B) 11C) 变量a的地址D) 变量a的地址 + 151504.以下程序段运行后*(p+3)的值为( )。Achar a=good;char *p;p=a;A) dB) 0C) 存放d的地址D) o51505.以下程序段运行后*(+p)的值为( )。Cchar a5=work;char *p;p=a;A) wB) 存放w的地址C) oD) 存放o的地址51506.若有定义:int *p,a=4; p=&a;则以下均代表地址的是( )。BA) a,pB) &a,p C) &a,*pD) a,*p51507.若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。DA) *p=&a;scanf(%lf,p);B) *p=&a;scanf(%lf,*p);C) p=&a;scanf(%lf,*p);D) p=&a;scanf(%lf,p);51508.在16位编译系统上,若有定义int a=10,20,30,*p=&a;当执行p+;后下列叙述错误的是( )。AA) p向高地址移了一个字节B) p与a+1等价C) 语句printf(%d,*p);输出20D) p指向数组元素a151509.下面语句正确的是()。BA) int *p; *p=20; B) char *s=abcdef; printf(%sn,s);C) char str=abcd; str+;D) char str=a,b,c;printf(%s,str);51601.若有以下程序段,且0i4,0j3,则不能正确访问a数组元素的是( )。Dint i,j,(*p)3;int a3=1,2,3,4,5,6,7,8,9,10,11,12;p = a;A) *(*(a+i)+j)B) pijC) (*(p+i)jD) pi+j51602.若函数fun的函数头为:int fun(int i,int j)且函数指针变量p定义如下:int(*p)(int i,int j);则要使指针p指向fun的赋值语句是()。BA) p=*fun;B) p=fun;C) p=fun(i,j);D) p=&fun;51603.设有如下变量定义: char aa3=a,b,c,d,e,f; char (*p)3=aa;则以下程序段的运行结果是( )。D p+; printf(%c,*p);A) aB) bC) cD) d51604.以下程序段运行后x的值为( )。Dint a=1,2,3,4,5,6,7,8;int i,x,*p;x=1;p=&a2;for(i=0;i3;i+)x*=*(p+i);A) 不确定B) 24C) 120D) 6051605以下程序段运行后x的值为( )。B int a=1,2,3,b=4,2,5;int *p,*q;int i,x;p=a; q=b;for(i=0;i3;i+)if(*(p+i)=*(q+i)x=*(p+i)*2;A) 2B) 4C) 6D) 不确定51606.以下程序段运行后x的值为( )。C int a9=1,2,3,4,5,6,3,8,9;int *p,*q;int i,x;p=&a0; q=&a8;for(i=0;i3;i+)if(*(p+i)=*(q-i)x=*(p+i)*2;A) 2B) 4C) 6D) 不确定51607.下面程序的输出结果是( )。A#includevoid main() int i; char *s=abc; for(i=0;i3;i+) printf(%sn,s+i);A) abcbccB) cbcabcC) abccbcD) aababc51608.下面程序的输出结果是( )。A#include void main() char *str=12345,*ps=str+4; printf(%cn,ps-4);A) 1B) 2C) 3D) 错误51609.以下程序执行时,输入1 2 3 4 5,输出为:()。A#include #define N 5 void main() int aN; int *p=a;while(pa) printf(%d,*(-p);A) 5 4 3 2 1B) 1 2 3 4 5C) 2 3 4 5 1D) 4 3 2 1 551701.设有以下定义语句:struct student int num; char name10; float score; wang,zhang;则不正确的叙述是( )。CA) struct是结构体类型的关键字B) zhang是结构体变量名C) wang是结构体类型名D) num,name,score都是结构体类型student的成员名51702.设有以下定义语句:struct student int num; char name10; float score; wang,zhang;则变量wang所占的内存字节数是( )。BA) 14B) 16C) 18D) 2051703.设有如下定义语句:union u_type int i; double x; float f; ;struct str_type char str100; union u_type u2; ;则语句“printf(%d, sizeof(struct str_type);”的输出结果是( )。BA) 100B) 116C) 120D) 20051704.若有定义:struct teacherint num; char name10; char sex; int age; float score;teacher1;则变量teacher1所占用的内存字节数是( )。CA) 5B) 14C) 19D) 20 51705.下列对结构体类型变量定义不正确的是( )。CA) struct teacher int num; int age;teach1; B) struct int num; int age;teach1,teach2;C) struct int num; int age;teacher;struct teacher teach1;D) struct teacher int num; int age;struct teacher teach1;51706.若有定义:struct teacher int num;char sex; int age;teacher1;则下列叙述不正确的是()。DA) struct是结构体类型的关键字B) struct teacher是用户定义的结构体类型C) num,sex,age都是结构体变量teacher1的成员D) teacher1是结构体类型名51707.以下程序的运行结果是( )。D#include union Utype int i; float f;u2;void main() printf(sizeof(u):%dn,sizeof(u);A) 2B) 4C) 6D) 851708.以下程序的运行结果是( )。D#include union Utype int i; float f;structchar ch2;int i;union Utype u;a;void main() printf(sizeof(a):%dn,sizeof(a);A) 5B) 6C) 7D) 851709.以下C语言共用体类型数据的描述中,不正确的是( )。DA) 共用体变量占的内存大小等于所需内存最大的成员所占的内存B) 共用体类型可以出现在结构体类型定义中C) 在定义共用体变量的同时允许对第一个成员的值进行初始化D) 同一共用体中各成员的首地址不相同51801.若有以下定义:struct link int data; struct link *next;*head, *p;并已建立如下图所示的链表结构: head datanextdatanext.dataNULL 指针p指向如下结点: p datanext 则能够把p所指结点插入到链表中成为链表第2个结点的程序段是( )。AA) p-next = head-next; head-next = p; B) head-next = p; p-next = head-next;C) p.next = head.next; head.next = p; D) (*head).next = p; (*p).next = (*head).next;51802.若有以下定义:struct link int data; struct link *next;a,b,c, *head, *p;其中,指针head指向变量a, p指向变量c,a.next指向变量b,链表结构如下图所示: a b c head datanextdataNULL p datanext 则能够把c插入到a和b之间并形成新链表的程序段是( )。DA) a.next = c; c.next = b;B) head.next = p; p.next = head.next;C) head-next = &c; p-next = head-next;D) (*head).next = p; (*p).next = &b;51803.若有以下定义:struct link int data; struct link *next; *head, *p;并已建立如下图所示的链表结构: p head datanextdatanext.dataNULL 则能保留链表其它结点,而删除p所指向结点的程序段是( )。AA) head-next = p-next; free(p);A) head-next = p; p-next = head-next; free(p);B) free(p); head-next = p; p-next = head-next; C) free(p); head-next = p-next; 51804.若有定义:struct node int data; struct node *next;及函数:void fun(struct node *head) struct node *p=head; while(p) struct node *q=p-next; free(p); p=q; 调用时head是指向链表首结点的指针,整个链表的结构如下图: head 2 15 27 NULL 则函数fun()的功能是( )。AA) 删除整个单向链表B) 删除单向链表中的一个结点C) 显示单向链表中的所有数据D) 创建单向链表51805.若有定义:struct node int data; struct node *next;及函数: void fun(struct node * head) struct node * p = head; while(p) printf(%d , p-data ); p = p-next; break; 调用时head是指向链表首结点的指针,整个链表的结构如下图: head 5 17 38 NULL 则函数fun()的功能是( )。CA) 删除单向链表B) 显示单向链表中的所有数据C) 显示单向链表中的第一个数据D) 创建单向链表51806. 若有定义:struct node int data; struct node *next;及函数: void fun(struct node * head) struct node * p = head; while(p) printf(%d , p-data ); p = p-next; 调用时head是指向链表首结点的指针,整个链表的结构如下图: head 5 17 38 NULL 则函数fun()的功能是( )。BA) 删除单向链表B) 显示单向链表中的所有数据C) 显示单向链表中的第一个数据D) 创建单向链表51807.若有如下定义,函数fun的功能是( )。B其中head指向链表首结点,整个链表结构如下图: head data data dataNULL struct node int data; struct node *next;int fun(struct node* head) int n=0; struct node* t=head; while(t!=NULL) n+; t=t-next; return n;A) 删除链表head中的所有结点B) 计算链表head中结点的个数C) 插入一个元素到链表head中D) 创建一个链表head51808.若有如下定义,函数fun的功能是( )。A其中head指向链表首结点,整个链表结构如下图: head data data dataNULL struct node int data; struct node *next;void fun(struct node* head) struct node* t=head; while(t!=NULL) if(t-data%2=0) printf(%d ,t-data); t=t-next; A) 遍历链表head,输出表中值为偶数的元素B) 建立一个只有表头结点的链表headC) 删除链表head中的第一个结点D) 插入一个元素到链表head中 51809.下面程序的输出结果是( )。A#include #include typedef struct node int data; struct node *next;Node;Node list3=1,&list1,2,&list2,3,0;void print(Node* head) Node* t=head; while(t!=NULL) printf(%d ,t-data); t=t-next; void main() print(list); A) 1 2 3B) 0 1 2C) 0 1 3D) 2 3 0 51901.对枚举类型进行定义,不正确的是( )。AA) enum b1, 2, 3;B) enum aA, B, C;C) enum cD=3, E, F;D) enum dX=0, Y=5, Z=9;51902.假定已有如下变量说明和枚举定义: char ch ; int j, k ; enum daysun, mon, tue, wed, thu, fri, sat ; int asat;判断下列语句是否符合语法规则,结果是( )。C char a ; /* 语句1 */ j + k = j ; /* 语句2 */ if(amon0) j + ; /* 语句3 */A) 语句2错误,其它正确B) 语句1正确,其它错误C) 语句3正确,其它错误D) 语句1错误,其它正确51903.设有如下定义:typedef int *INTEGER;INTEGER p,*q;则( )是正确的叙述。CA) p是int型变量B) q是基类型为int的指针变量C) p是基类型为int的指针变量D) 程序中可用INTEGER代替int类型名51904.在对于无符号数的位运算中,操作数右移一位相当于( )。AA) 操作数除以2B) 操作数乘以2C) 操作数除以4D) 操作数乘以451905.若有定义:int a=20,b=28,c;则执行语句c=(ab)2;后c的值为( )。AA) 5B) 7C) 80D) 11251907.下面程序的输出结果为( )。B#include void main() enum Weekdaysun=7,mon=1,tue,wed,thu,fri,sat; enum Weekday day=sat; printf(%dn,day);A) 7B) 6C) 5D) 4 51908.若有以下类型说明,叙述正确的是( )。Ctypedef struct int num; char *name; int score;STU,*PSTU;A) STU是变量名 B) PSTU是变量名 C) PSTU是指向结构体类型STU的指针类型名D) 类型说明语句有错误51909.下面程序段的运行结果是( )。Cint a=5,b=6;printf(%d,a|b);A) 5B) 6C) 7D) 852001.以下程序的功能是( )。C#include main() FILE *fp; long int n; fp=fopen(wj.txt,rb); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp); printf(%ld,n);A) 计算文件wj.txt的起始地址B) 计算文件wj.txt的终止地址C) 计算文件wj.txt内容的字节数D) 将文件指针定位到文件末尾52002.标准函数fgets(s, n, f)的功能是( )。BA) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存52003.以下程序的可执行文件名是file.exe。 main(int argc,char * argv) int i; for(i=2;iargc;i+) printf(%s%c,argvi,(iargc-1)? :n); 在DOS命令行输入:file My C Language and Programming,其输出结果是( )。AA) C Language and ProgrammingB) My C Language and ProgrammingC) MyCLanguageandProgrammingD) file My C Language and Programming52004.以下程序的可执行文件名为tt.exe,若程序运行后屏幕显示:3, We are,则在DOS提示符下输入的命令是( )。Cvoid main(int argc, char * argv) int i; printf(%d,argc); for(i=1;iargc;i+) printf(%s ,argvi);A) tt B) tt We C) tt We are D) tt We are happy! 52005.以下程序运行后,屏幕显示write ok!,下列说法正确的是( )。D#include main() FILE *fp; fp=fopen(data.txt, wt); if(fp!=NULL)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论