- 字符数组定义后,不能用赋值语句将一字符串常量或字符数组直接赋给它( )
- . 局部变量是执行到作用域时分配空间,离开作用域时释放空间( )
- 按位与&常用来对某些位清0( )
- 设有定义int *p; 则p的类型是int( )
- 用scanf()输入数据时,遇到非法字符即认为数据的输入结束。( )
- C语言中的break语句可以用在switch语句和循环体中. ( )
- 指针就是地址,地址就是指针( )
- 在源文件开头和最后定义的两个全局变量,它们的作用域相同。( )
- if语句中,if后面的表达式只能是关系表达式或逻辑表达式。( )
- 静态局部变量若有初值,在程序运行过程中只赋一次初值,它可以保留上次使用时留下的数据。( )
- c语言中,空语句表示什么都不做,因此可以省略。( )
- while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了. ( )
- 若有以下程序段: int (*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9};p = a; 则能正确访问a[1][2]的选项有( )。
- 下面关于变量的初值等问题的说法中,正确的有( )。
- 设某源文件定义了一个static型的全局变量,则下面说法中正确的有( )。
- 关于代码FILE *fp,下面说法正确的是( )。
- 设有以下语句typedef struct S{ int g; char h;}*T;则下面叙述中正确的有( )。
- 下列选项中属于正确的字符常量的有( )。
- 以下叙述中错误的有( )。
- 若有以下程序段:char s[]="computer";char *p;p=s; 则以下叙述中错误的有( )。
- 下面关于if语句说法正确的有( )。
- 下面四个有关位运算的选项中,值不为0的表达式有( )。
- 以下不能正确定义二维数组的有( )。
- 文本文件的内容是若干字符,二进制值分别是:00110001 00110010 00100000 00110011,要将文件内容逐字节读取出来,可以用的方法有( )。
- C程序是由什么构成的( )。
- 关于return语句,下面说法中错误的是( )。
- 文件的二进制内容是:00001101 00001010 00000001 00000000,windows中,用”r”方式打开文件,先用fread()函数读取一个字符,再用fread()读取一个短整数,则字符是和短整数分别是( )。
- int a=3,b=4,c=5,d=6;printf("d%-3d%*d\n",a,b,c,d); 上面程序的运行结果是(下面选项中的u代表空格)( )。
- 设有下列数据定义语句: char s[4][5]={{'1', '\0'}, {"23"}, "345", "4\0"}; ,则 puts(&s[0][0]); 的输出结果是( )。
- 已有定义:int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是( )。
- 若有定义char a;int b;float c;double d;则表达式a*b+d-c值的类型为( )。
- 若有定义int a[4][6]; 则能正确表示a数组中任一变量a[i][j](i,j均在有效范围内)的指针的表达式是( )。
- 数据用什么方式读写,取决于( )。
- 关于while(a>b>c ){…},以下说法正确的是( )。
- 关于指针和指针变量,以下说法正确的是( )。
- 有以下程序段struct st{ int x; int *y;}*pt;int a[]={1,2},b[]={3,4};struct st c[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是( )。
- 查找变量定义或变量声明时,只能在变量出现的位置之前查找,遇到内层大括号时,可以进入查找。( )
- #include "stdio.h"int main(int argc, char *argv[]){ int m; for (m=1; m<argc ; m++) printf("%c", *argv[m]); return 0;}假定上面程序的可执行文件名为file.exe,则在该程序所在的子目录下输入命令行:file girl boy↙后,程序的输出结果是girl boy( )
- 如果if语句的两个分支都是给同一变量赋值,则可以不用if语句,改为在赋值语句中使用条件表达式。( )
- 把数字字符'1'用二进制方式写进文件,则文件的内容是00000001( )
- 用strcat(字符串1,字符串2)连接两个字符串时,字符串1的存储空间必须足够大。( )
- 执行scanf("M",&i);时,若输入123456789,则i得到的值是1234。( )
- 文件包含时,若把""写为<>,有可能会导致打不开被包含的文件( )
- 间接寻址必须使用指针( )
- 按位异或^可用来使某些位翻转( )
- 一个合法的C语言标识符只能由字母、数字和下划线组成,如:14student与_total均是合法的标识符。( )
- 按位或|常用来让某些位翻转( )
- 一个源文件必须且只能有一个主函数。( )
- int a[2][3]; int *p=a[0]; p++; 以上代码运行后,p指向a[1][0]( )
- 当main函数带有形参时,传给形参的值只能从命令行中得到( )
- 共用体变量可以用指针访问( )
- 设有定义int a,*p=&a,则p指向a的地址( )
- 若有定义:int b[4][6],*p,*q[4];且0≤i<4,则正确的赋值语句有( )。
- #include <stdio.h>int main(){ int x,t; for(t=1;t<100;t++) { scanf("%d",&x); if(x<0) continue; printf("%d\n",t); } return 0;}对上面的程序描述错误的有( )。
- 以下关于宏定义的四种说法中,正确的有( )。
- windows中把换行符写进文件,下面说法正确的有( )。
- C语言中while和do-while 循环的主要区别有( )。
- 以下选项中可以用指针变量访问的有( )。
- 下列关于do-whlie循环的说法中正确的有( )。
- 关于常量,以下说法正确的有( )。
- 关于逻辑运算,下面说法正确的有( )。
- 若不赋初值,其值为0的变量有( )。
- 针对字符串的不同表达方式,下面说法错误的有( )。
- 下面哪些情况下调用feof其返回值肯定是0?( )。
- 下列语句中,功能相同的语句有( )。
- 关于赋值运算符“=”,以下说法错误的有( )。
- 以下四个选项中,无论键盘怎样输入,都不能给所列变量都存入正确数据的有( )。
- 关于宏展开,下面四种说法中错误的有( )。
- 关于缓冲区,下列说法正确的有( )。
- int a=3;int main(){ int s=0; {int a=5;s+=a++;}; s+=a++; printf("%d,%d\n",s,a);}上面程序段的运行结果是( )。
- 在以下各组标识符中,均是合法的C语言标识符是( )。
- 设有如下定义: struct sk{ int a; float b;}data,*p;p=&data;则对data中的a域引用正确的是( )。
- #include <stdio.h>int main(){ int a=1,b=2; while(a<6) { b+=a; a+=2; b%=10; } printf("%d,%d\n",a,b); return 0;}上面程序的运行结果是( )。
- #include <string.h>#include <stdio.h>int main(){ char s[3][20]= {"2345", "123456", "2347"}; int i, k; for( k= 0, i=1; i < 3; i++) if((strcmp(s[k], s[i]))<0) k=i; puts(s[k]); return 0;}上面程序的输出结果是( )。
- int a=321,b=65536;printf("%ld,%hd,%c\n",a,b,a);上面程序段的运行结果是( )。
- C语言程序从哪开始执行?( )。
- #include <stdio.h>int main(){ int i; for (i=4;i<=10;i++) { if (i%3==0) continue; printf("%d",i); } return 0;}上面程序的运行结果是( )。
- 是否要在写文件时对00001010进行加字节的处理,取决于( )。
- 若有表达式(w)?(--x):(++y),则下列选项中与其等价的表达式是( )。
- !5和~5的值分别是( )。
- 若“int k=4,a=3,b=2,c=1;”,则表达式k<a?k:c<b?c:a的值是( )。
- 已有函数max(a,b),为了让指向函数的指针变量p指向max,正确的赋值方法是( )。
- 能定义一个名为a的单精度实型一维数组、长度为4、所有元素的初值不肯定都为0的语句是( )。
- #include<stdio.h> union utype{ short i; float f[2];}u[2];int main(){ printf("%d\n",sizeof(u)); return 0;} 以上程序的运行结果是( )。
- int a=2,b=2,c=2,f;f=a==b==c;上面的代码运行后,f的值是( )。
- 若定义函数时未写出函数类型,则( )。
- 以下数据定义语句中,能对a进行自增运算并且自增后有意义的是( )。
- 字符串存储时的结束标志是( )。
- 文件的二进制内容是:00000001 00000010,用fread()函数读取一个短整数,则短整数的值是( )。
- 代码printf("%d",12^9)的输出结果是( )。
- int i=3,x[4]={1, 2, 3}; 设有如上数据定义,则数组元素x[i]的值是( )。
- 设有以下语句:struct st{ int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];则以下选项中表达式的值等于6的是( )。
- short a,b;long c=-1;a=65535;b=c;printf("%hd %hu",a,b);上面程序的运行结果是( )。
- 逗号表达式((a=3*5,a*4),a+15)的值为( )。
- 根据变量的存储类别将变为分为( )。
- 以下叙述中正确的是( )。
- 在main函数中定义的变量一般是全局变量( )
- #include "stdio.h"int main(){ char s[]="example!", *t; t=s; while( *t!='p') { printf("%c", *t-32); t++; } return 0;}上面程序段的运行结果是 EXAM ( )
- #include "string.h"#include "stdio.h"int main(){ char *p="abcde\\0fghjik\\0"; printf("%d\n", strlen(p)); return 0;}以上程序的运行结果是 5( )
- 任何用while或do-while写成的循环都可以写成for循环. ( )
- if语句可以嵌套,嵌套时,每个if都必须要有唯一的一个else与之配对。( )
- switch语句中,case和default的位置次序可以任意互换,不会影响程序的执行结果。( )
- stdin、stdout、stderr都是全局指针变量,类型都是FILE*( )
- !是按位取反运算符( )
- for后面的表达式可以省略,同时分号也要省略. ( )
- 运行代码 “int a[10]; a++;”后,指针a指向元素a[1]( )
- 共用体变量所占空间大小等于各成员所占空间大小之和(不考虑内存对齐规则)( )
- 指针就是指针变量( )
- 结构体变量可以用指针变量访问( )
- 用"w"方式打开文件,把短整型变量n=11的值以及字符变量c=‘\n’的值用fwrite()分两次写入文件,则文件的内容(二进制数)是00001011000000000000110100001010( )
- 设有如下的程序段:char s[]="girl", *t; t=s; 则s数组长度和t所指向的字符串的长度相等( )
- 逗号表达式的值等于最后一个表达式的值,因此,计算逗号表达式时,直接看最后一个表达式即可。( )
- 在对性能要求较高的场合,不宜采用递归,而当程序员追求程序的可读性和可管理性的时候,通常采用递归.( )
- 函数声明的位置必须在主调函数的函数体之内, 不可以在主调函数的函数体之外( )
- 函数声明和函数定义的区别是,函数定义包括函数体,而函数声明没有函数体,且后面带分号.( )
- 循环体可以是多条语句( )
- 把程序写成若干个函数,应遵循的原则有( )。
- 要把字节00001010写进二进制文件,可以用的方法有( )。
- 下列对while语句说法正确的有( )。
- 以下选项中可以进行初始化的有( )。
- 设有代码:int a,*p=&a;关于用直接寻址还是间接寻址访问a,下面说法正确的有( )。
- a是整型变量,能正确表示数学关系10<a<15的表达式有( )。
- 关于形参和实参,以下说法正确的有( )。
- 若有说明:int a[10];则对a 数组元素的正确引用有( )。
- 以下关于指针、指针变量等信息的描述,正确的有( )。
- 关于结构体和共用体,下面说法正确的有( )。
- 要想通过指针变量p访问变量a,下面代码正确的有( )。
- 下面关于运算符或整数运算的说法中,正确的有( )。
- 下面4个选项中,能从文件中读取一个字符并存入char型变量的函数有( )。
- 在C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
- 若变量已正确定义为int型,要通过语句“scanf("%d,%d,%d",&a,&b,&c);”给a赋值1,给b赋值2,给c赋值3,以下输入形式中正确的有(μ代表一个空格符)( )。
- 主函数中定义了变量a,想在被调函数sub中使用,关于如何传递参数,下面说法正确的有( )。
- 若有说明语句:char s[]="it is a example.", *t="this is a sample.";则以下叙述中正确的有( )。
- 下面哪些类型的数据,是用补码存储的值?( )。
- 下面四个有关位运算的选项中,值为0的表达式有( )。
- 假设有如下的定义:struct Student{ int n; char c[10]; float f;}rec,*p=&rec;以下4个输入语句中,正确的有( )。
- #include <stdio.h>int main(){ int a[]= {1, 2, 3, 4, 5}, i; for(i=1; i<5; i++) printf("", a[i]-a[i-1]); return 0;}上面程序的输出结果是 ( )。
- 下列数组定义语句中,错误的是( )。
- 设有定义int a=1,b=2;以下选项中不正确的语句是( )。
- 关于函数声明,下面说法错误的是( )。
- 以下语句中错误的是( )。
- int n=3,x;x=n++;上面程序段执行后,x的值是( )。
- 设有定义int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
- 下面哪种情况下feof函数返回非零值?( )。
- 关于函数的参数,下面说法正确的是( )。
- 设整数也只用一个字节存储,则整数1与字符‘1’在内存中的存储形式分别是( )。
- 若有定义:int (*p)[4]; 则标识符p( )。
- int test(){ int x=0 ; static int y=5 ; y+=++x ; return x+y ;}int main(){ test(); printf("%d\n",test()) ; return 0;}上面程序段的运行结果是( )。
- int a,b;short c=32767,d=-1;char e='A';a=c;b=d;c=e;printf("%d %d %hd",a,b,c);上面程序段的运行结果是( )。
- x=y=z=1;t=++x||++y&&++z;设x、y、z、t都是int型变量,上面程序段执行后,t的值是( )。
- 关于函数调用,下面说法正确的是( )。
- 设有定义#define N 2+1则N代表( )。
- 表达式9||12和9|12的值分别是( )。
- 若有定义: struct Student{ int age; int score;}a; 要给a同学存入一个年龄20,正确的写法是( )。
- #include<stdio.h>int main(){ …………//这里需要添加语句。 return 0;}已知字符A对应的ASCII码为65,则上面程序,添加下列哪个语句段, 能够使程序正确输出字符A( )。
- 要定义指针变量p并使之指向变量a,下面代码正确的是( )。
- int a=1,b=2,c=3,d=4,m=2,n=2;if((m=a>b)&&(n=c>d));else printf("%d,%d",m,n); 上面程序段的运行结果是( )。
- #include <stdio.h>#include <string.h>int main(){ char *s="ABCDE"; s+=2 ; printf("%c",*s); return 0;}上面程序段的输出结果是( )。
- 在内存的栈区(动态存储区)分配空间的是( )。
- C语言源程序的扩展名是( )。
- 已有定义:int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的表达式是( )。
- 若有程序段:int a[2][3],(*p)[3]; p=a; 则对a数组元素的正确引用是( )。
- 若有定义:int a[5],*p=a; 则以下选项中属于a数组元素指针的是( )。
- 在一个源文件中,若要定义一个只允许本源文件使用的全局变量,则该变量的存储类别应是( )。
- while (a){ if (b) continue; c;}与上面程序段等价的是( )。
- #include<stdio.h>int main(){ int a=1,b=2; for(b+=a;a<5;a++) a+=2; printf("%d,%d\n",a,b); return 0;}上面程序的运行结果是( )。
- 若已定义char s[10];则在下面表达式中不能表示s[1]的指针的是( )。
- 设有代码:int a=10,*p=&a;printf("%d",++*p);以上程序段的输出结果是( )。
- #include<stdio.h>int main(){ int x[5]= {2,4,6,8,10}, *p, **pp; p=x , pp = &p ; printf("%d",*(p++)); printf("=",**pp); return 0;}上面程序的运行结果是( )。
- 以下与int *q[5]; 等价的定义语句是( )。
- 表达式9&&12和9&12的值分别是( )。
- 要定义一个函数用来输出三行字符信息,函数的类型一般应定义为( )。
- 不能定义一个名为"s"的字符型数组且赋初值为字符串"123"的语句是( )。
- 设有如下说明typedef struct ST{ long a; int b; char c[2];}NEW;则下面叙述中正确的是( )。
- float x=3.1415926, y=6.2831853;double z=12.3456789;printf("_,%.5f,%5.5f\n",x,y,z); 上面程序段的运行结果是( )。
- 程序编译连接后显示" 0 error,0 warning" 代表( )。
- 曾经,用fwrite函数(该函数用二进制方式写数据)向文件中写了一个整数,今欲将其读取出来,关于用什么方式打开文件,下面说法正确的是( )。
- 文本文件中只存有一个字符‘A',要将它读出来,下面说法正确的是( )。
- 文件的二进制内容是:00001101 00001010 00110010 00100000,windows中,用"r"方式打开文件,用fscanf(fp,"%c%hd",&c,&n)函数读取一个字符和一个短整数,则字符和短整数分别是( )。
- 文件的二进制内容是:00110001 00100000,用fscanf(fp,"%d",&x)或fread(&x,2,1,fp)读取一个短整数,则用此两种函数读出来的结果分别是( )。
- 标准函数fgets(s, n, f )的功能是( )。
- 关于读写位置指针,下面四种说法中正确的是( )。
- 以下关于文件操作的说法中,正确的是( )。
- 假设所有用到的函数都能正确执行,则下面说法正确的是( )。
- 缓冲文件系统中,使用下面哪类文件或设备不需要程序员打开和关闭?( )。
- 下列四种打开文件的方式中,能删除原文件(已有文件)内容的是( )。
- 关于在缓冲文件系统中打开文件,下面说法正确的是( )。
- 关于C语言中的文件系统,下面说法错误的是( )。
- windows中,用"w"方式打开文件,把短整型变量n=10的值以及字符变量c='\\n'的值用fwrite()分两次写入文件,则文件的内容(二进制数)是( )。
- 关于打开文件,下面说法错误的是( )。
- 关于取反运算,下面说法正确的是( )。
- 若有代码:int a=11,b=2,c;c=(a>>2)|(b<<1);则代码执行后c的值为( )。
- 若有定义:int a=20,b=28,C;则执行语句C=(a&b)>>2; 后C的值为( )。
- 若有定义:int x=3, y=4;则表达式x^~y的值为( )。
- 表达式7^16的值是( )。
- 若有定义:int x=3, y=4; 则表达式!x|y的值为( )。
- int main() { char x=040; printf("%d\n",x=(x<<1)); return 0; } 以上程序的输出结果是( )。
- 表达式7&&8和7&8的值分别是( )。
- char a=3,b=6,c;c=a^b<<2;以上程序执行后c的二进制值是( )。
- 表达式7||8和7|8的值分别是( )。
- #include<stdio.h>union utype{ int i; float f;}u[2];int main(){ printf("%d\n",sizeof(u)) ; return 0;}在VC环境下上面程序的运行结果是( )。
- 设有以下定义语句struct student{ int num; char name[8]; float score;}a[2];则在VC环境下数组a所占内存的字节数是( )。
- 设有以下语句typedef struct S{ int g; char h;}T;则下面叙述中正确的是( )。
- 关于typedef,以下叙述中错误的是( )。
- union U{ short a; char b[4];}u;u.b[0]=2; u.b[1]=1;u.b[2]=3;printf("%hd\n",u.a);VC中,上面程序的执行结果是( )。
- 假设有如下的定义:struct{ int n; char c; float f;}rec;则以下各个输入语句中,正确的是( )。
- 以下对共用体类型数据的描述中,错误的是( )。
- union{ short m; char a[8];}a,*p=&a; a.m=100;a.a[0]='A’;p->a[1]=1;printf("%d,%d",sizeof(a),a.m); 上面程序的运行结果是( )。
- 有以下说明和定义语句struct student{ int age; char num[8];};struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};struct student *p=stu;则以下选项中引用结构体变量成员错误的是( )。
- 若有以下程序段:struct st{ int n; int *m;};int a=2,b=3,c=5;struct st s[3]=({101,&a},{102,&b},{103,&c});int main(){ struct st *p; p=s; ...}则以下表达式中值为5的是( )。
- 下列对结构类型变量不正确的定义是( )。
- struct person { char name[9]; int age;};struct person class[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};根据上面的定义,能打印出字母M的语句是( )。
- int main(){ struct cmplx { int x; int y; } cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y /cnum[0].x * cnum[1].x); return 0;}上面程序的输出结果是( )。
- 设有以下定义语句:struct student{ int num; char name[10]; float score;}wang,zhang;则变量wang所占的内存字节数(注:在VC环境下要考虑内存对齐规则)是( )。
- #include <stdio.h>struct abc{ int a,b,c;};int main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); return 0;}上面程序的输出结果是( )。
- 下面选项中属于函数指针的是( )。
- 若有以下函数首部 int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是( )。
- int main(){ char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0;}上面程序的运行结果是( )。
- 对于语句int *pa[5]; 下列描述中正确的是( )。
- 若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是( )。
- 设变量p1和p2指向同一个字符串的首字母,c为字符变量,则以下不能正确执行的赋值语句是( )。
- 若有代码: char a[ ]="It is mine"; char *p="It is mine"; 则以下错误的叙述是( )。
- 若有int **pp;int *p,a=1;p=&a; 则能使pp指向变量p的代码是( )。
- 若有定义:int a[2][3]; 则属于a数组的第i行j列元素的指针的表达式是( )。
- #include <stdio.h>#include <string.h>int main(){ char *s1="AbDeG"; char *s2="AbdEg"; s1+=2; s2+=2; printf("%d\n",strcmp(s1,s2)); return 0;}上面程序的运行结果是一个( )。
- 若有以下代码:int c[4][5],(*p)[5];p=c; 则能正确引用下标变量的是( )。
- char *s="abcde"; s+=2; printf("%d",s);上面程序段的输出结果是( )。
- 以下四个程序段中,能正确执行的是( )。
- 已定义以下函数 int *fun (int *p){ return p;}该函数的返回值是( )。
- 设已有定义: char *st="how are you"; 则下列程序段中能正确执行不越界的是( )。
- 有以下定义char a[10],*b=a;则不能给数组a输入字符串的语句是( )。
- #include <stdio.h>int main(){ char a[ ]="programming",b[ ]="language"; char *p1,*p2; int i; p1=a; p2=b; for(i=0; i<7; i++) if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); return 0;}上面程序输出结果是( )。
- 若有定义int a[7],*p=a; 则p+5表示( )。
- #include <stdio.h>int main(){ int x[ ] = {10, 20, 30}; int *px = x; printf("%d,", ++*px); printf("%d,", *px); px = x; printf("%d,", (*px)++); printf("%d,", *px); px = x; printf("%d,", *px++); printf("%d,", *px); px = x; printf("%d,", *++px); printf("%d\n", *px); return 0;}上面程序运行后的输出结果是( )。
- 设已有定义: int a[10]={15,12,7,31,47,20,16,28,13,19},*p; 则下列语句中正确的是( )。
- #include <stdio.h>int main(){ int arr[ ]= {6,7,8,9,10}; int *ptr; ptr=arr; *(ptr+2)+=2; printf ("%d,%d\n",*ptr,*(ptr+2)); return 0;} 上面程序的运行结果为( )。
- 若有定义int a[5],*p=a; 则对a数组元素的正确引用是( )。
- 有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];执行后b中的值是( )。
- 若有语句int *point,a=4;和point=&a;下面均代表指针的一组选项是( )。
- 若有如下定义:char x[]="abcdefg"; char y[]={'a', 'b', 'c', 'd', 'e','f', 'g'};,则正确的叙述为:( )。
- 若有定义int a[3][4]; 则能输入其第3行第2列元素(这是生活中计数方式)的正确语句为( )。
- 若有语句:char s1[10], s2[10]="books";,则能将字符串books存入数组s1的语句是( )。
- 设有定义:char s[12]="string"; 则printf("%d,%d",strlen(s),sizeof(s));的输出结果是( )。
- 语句printf("%d\n", strlen("school"));的输出结果是( )。
- 若想定义一个名为s且初值为字符串"123"的字符数组,则下列定义错误的是( )。
- 关于数组,下列描述中不正确的是( )。
- 语句strcat(strcpy(str1,str2),str3);的功能是( )。
- 若二维数组y有m列,则排在y[i][j]前的变量个数为( )。
- 若有定义:int a[2][4];,则引用下标变量正确的是( )。
- #include <stdio.h>int main(){ int b[3][3]= {0,1,2,0,1,2,0,1,2},i,j,t=0; for(i=0; i<3; i++) for(j=i; j<=i; j++) t=t+b[i][b[j][j]]; printf("%d\n",t); return 0;}上面程序的输出结果是( )。
- 以下对二维数组的定义中,正确的是( )。
- 以下对一维数组的定义中,不正确的是( )。
- 以下对一维数组a的定义中,正确的是( )。
- 若有定义:int aa[8];,则不能代表数组元素aa[1]地址的是( )。
- #include <stdio.h>int main(){ int m[ ][3]= {1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0; i<3; i++) { printf("%d ",m[k][i]); } return 0;}上面程序的运行结果是( )。
- #include <stdio.h>int main(){ int a[4][4]= {{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);return 0;}上面程序的运行结果是( )。
- 假定一个int型变量占用两个字节,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数是( )。
- 下面四段程序中,能正确输出变量a的值的是( )。
- 要定义两个指针变量,下面代码正确的是( )。
- 若有定义:int *p;则以下说法正确的是( )。
- 关于直接寻址和间接寻址,下面说法错误的是( )。
- 若有定义int x,*p;则能使p指向x的表达式是( )。
- 若有定义:int a=511, *b=&a;则printf("%d\n", *b)的输出结果为( )。
- 若有定义:int *p, a=1, b;则以下正确的程序段是( )。
- 关于指针变量的属性以及它是否占用内存空间,下面说法正确的是( )。
- 关于指针和指针变量,下面说法正确的是( )。
- 关于指针变量指向哪里,下面说法正确的是( )。
- 若有定义#define M(n) a=n*2int a;则printf("%d",M(5+1)*3)的输出结果是( )。
- 有一种方法可以避免一个文件的内容被包含两次或以上,该方法除了文件包含命令外,还需要使用( )。
- 设有宏定义#define PI 3.14159在宏展开时,3.14159会被认为是( )。
- 若有宏定义#define N 2+1则printf("%d",N*(N+1))的输出结果是( )。
- 关于宏展开,下面说法错误的是( )。
- 关于宏定义,下面说法正确的是( )。
- 关于文件包含,下面说法错误的是( )。
- 文件包含命令中用<>包括被包含的文件,表示( )。
- 文件包含时,可以用<>也可以用""将被包含文件括起来,关于这两种包含方式,下面说法正确的是( )。
- 下面关于条件编译的说法,正确的是( )。
- int fac (int n){ static int f=1; f*=n; return f;}int main(){ int i,n; for(i=1;i<=5;i++) n=fac(i); printf("%d",n); return 0;} 上面程序的运行结果是( )。
- 允许在其它源文件中使用的是( )。
- 根据变量的作用域可将变量分为( )。
- 在程序运行过程中不占内存空间的变量是( )。
- 全局变量和局部静态变量分配空间的时机是( )。
- #include<stdio.h>int a=2,b=3;int max(int a,int b){ int c; c=a>b?a:b; printf("%d",c); return c;}int main(){ int a=4; max(a,b); printf("%d",max(a,b)); return 0;}上面程序的运行结果是( )。
- 若在一个函数的复合语句中定义了一个变量,则该变量( )。
- 在函数体中定义的局部变量,其作用范围是( )。
- 定义局部变量时不指定存储类型,则其存储类型是( )。
- 定义了一个变量但未赋初值,关于它的初值,下面说法正确的是( )。
- 某源文件中定义了一个全局变量,其作用范围是( )。
- 若全局变量定义时未规定属性,则它的属性是( )。
- 关于全局变量的生存期,下面说法正确的是( )。
- 关于静态局部变量,正确的说法是( )。
- 关于函数的形参,下列说法正确的是( )。
- 函数中没有return语句,则下面说法中正确的是( )。
- #include<stdio.h>int fun(int n){ if(n==1) return 1; else return(n+fun(n-1)); }int main(){ int x; scanf("%d",&x); x=fun(x); printf("%d",x); return 0;}若程序运行时键盘输入10,则上面程序的运行结果是( )。
- 若定义函数时不写返回值的类型,则函数值的类型是( )。
- #include<stdio.h>long fib(int g){ switch(g) { case 0:return 0; case 1: case 2:return 1; } return ___________;}int main(){ long k; k=fib(7); printf("k=%ld\n",k);}上面的程序是用递归的方法求菲波拉契数列1、1、2、3、5、8……第7项fib(7),横线处所缺的代码是( )。
- 有以下函数定义:void fun(int n,double x) {…} ,若以下选项中的变量都已经正确定义且赋值,则对函数fun的正确调用语句是( )。
- 下面对于函数的描述中,正确的是( )。
- 关于实参和形参占用内存空间问题,以下说法正确的是( )。
- 以下函数声明中正确的是( )。
- #include<stdio.h>void f(int x){ }int main(){ int a=1; f(a); return 0;}对于上面的程序, 以下说法正确的是( )。
- 关于实参和形参,以下说法中不正确的是( )。
- #include <stdio.h>int a=1, b=2;void swap( int c,int d){ int t;t=a; a=b; b=t;t=c;c=d;d=t;}int main(){ int c,d;scanf("%d,%d", &c, &d); swap(c,d ); printf ("%d, %d,%d,%d\n",a,b,c,d); return 0;}假设用户输入5,3,则上面程序的运行结果是( )。
- fun(float x){ float y; long z; y=x*x; z=(long)y; return(z);}上面fun函数的类型是( )。
- #include<stdio.h>void fun (int a,int b){ int t;a=456;b=567;t=a, a=b, b=t;}int main(){ int x=10, y=20; fun (x,y); printf("%d,%d\n",x,y); return 0;}上面程序的运行结果是( )。
- #include<stdio.h>int main(){ int i=1,n=1; for( ;i<3;i++) { continue; n=n+i; } printf("%d",n); return 0;}上面程序运行后,变量n的值为( )。
- #include<stdio.h>int main(){ int x=012; do printf("%d",x--); while(--x); return 0;}上面程序的运行结果是( )。
- #include<stdio.h>int main(){ int s=0,i=5; while(s+=i,i-=2) printf("%d",s); return 0;}上面程序的运行时,循环的执行次数是( )。
- #include<stdio.h>int main(){ int x,s; for(x=0,s=0;x<=10;x++) { if(x%3==0) continue; else { if(x%4==0) continue; else s+=x; if(s%5==0) break; } } printf("%d",s); return 0;}上面程序的运行结果是( )。
- 有关for语句中,正确的是( )。
- #include<stdio.h>int main(){ int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); 7题 printf(" "); } return 0;}上面程序的运行结果是( )。
- #include<stdio.h>int main(){ int x,s=0; for(x=1;x<=5;x++){ switch(x%3){ case 0: default:s+=3; 格式不对 case 1:s+=1;break; case 2:s+=2; } } printf("%d",s); return 0;}上面程序的运行结果是( )。
- 关于do-while循环, 以下叙述正确的是( )。
- #include<stdio.h>int main(){ int i=10,x=0; for( ;i<10;i++) x=x+i; printf("%d",x); return 0;}上面程序运行后,循环体运行的次数为( )。
- 关于while语句,错误的说法是( )。
- 关于循环的控制,以下说法正确的是( )。
- 设变量已正确定义,下面程序中能计算f=n!的是( )。
- 以下不是死循环的选项是( )。
- #include<stdio.h>int main(){ int x,i; for(x=3;x<=100;x++){ if(x%2==0) _____; for(i=2;i<=x-1;i++) if(x%i==0) _____; if(i==x) printf("%d",x); } return 0;}上面程序的功能是找出3~100间的素数,程序中所缺的两处应为( )。
- 对于整型变量x,与while(!x)等价的是( )。
- 以下程序段中,与语句: k=a>b?(b>c?1:0):0;功能相同的是( )。
- 1. #include <stdio.h>2. int main()3. {4. int m;5. printf("Input m: ");6. scanf("%d", &m); //输入一个整数7. if (m > 0) //是否为正数8. {9. if (m % 2 == 0) //是正数,且能被2整除,则是正偶数10. {11. printf("%d is a positive even\n", m);12. }13. else //不能被2整除,则是正奇数14. {15. printf("%d is a positive odd\n", m);16. }17. }18. 19. _______________ //判断是否为负数20. 21. {22. _______________23. 24. {25. printf("%d is a negative even\n", m); //是负偶数26. }27. else28. {29. printf("%d is a negative odd\n", m); //是负奇数30. }31. }32. else33. {34. printf("%d is zero.It is an even\n", m); 35. }36. return 0;37. }上面程序代码的功能是判断输入整数的正负性和奇偶性,能将代码补充完整且正确的选项是( )。
- int x=1,a=0,b=0;switch(x){ case 0:b++; case 1:a++; case 2:a++;b++;}上面程序段执行后,a,b的值分别是( )。
- int x=1,y=2,z=3;switch(x=1){ case 1: switch(y==2){ case 1:printf("*");break; case 2:printf("%");break; } case 0: switch(z){ case 1:printf("$");break; case 2:printf("&");break; default:printf("#"); }}上面程序段的运行结果是( )。
- int x,y;scanf("%d%d",&x,&y);if(x>y) x=y;y=x;else x++;y++;printf("%d,%d",x,y);关于上面程序段,下列说法正确的是( )。
- int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;上面的程序段执行后,c的值是( )。
- int x=10,y=20,z=30;if(x>y) z=x;x=y;y=z;上面代码段执行后,x,y,z的值是( )。
- int w='b',x=14,y=15;w=((x||y)&&(w<'a'));执行上面程序段后,w的值为( )。
- #include <stdio.h> int main ( ){ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf ("%d,%d",k,m); return 0; }上面程序的运行结果是( )。
- 以下是if语句的基本形式:if(表达式) 语句其中“表达式”( )。
- if((x=y=2)>=x&&x=5) y*=x;上面程序段执行后,整型变量x、y的值分别是( )。
- int a=3,b=2,c=1,f;f=a>b>c;上面程序段执行后,f的值是( )。
- 逻辑运算符中,运算优先级按从高到低正确排序的是( )。
- 以下四个选项中,执行完程序段后y的值不为3的是( )。
- 若有表达式(!w)?(--x):(++y),则下列选项中与其等价的表达式是( )。
- int a;char b;float c;scanf("%d%c%f",&a,&b,&c);若上面程序段运行时键盘输入的字符序列为2223a123o.12,则a、b、c的值分别是( )。
- int i;float f;scanf("i=%d,f=%f",&a,&f);上面程序段准备把10和5.12分别存给i和f,则正确的输入应是( )。
- char x=0xffff;printf("%d\n",x--);上面程序段的运行结果是( )。
- 要从键盘给两个整型变量a、b输入数据,输入格式是1,2<Enter>,能完成此任务的代码是( )。
- 想通过代码“scanf("%d%d,%d",&a,&b,&c);”把1、2、3分别存入3个整型变量a、b、c,则正确的键盘输入应该是( )。
- a、b、c都是整型变量,用“scanf("%d - %*2d %d",&a,&b,&c);”给3个变量输入数据,设输入格式是12 34 56 78<Enter>,则3个变量的值分别是( )。
- char c1='1',c2='2';c1=getchar();c2=getchar();上面的程序段运行时从键盘输入a<Enter>,则正确的叙述是( )。
- 以下不属于格式控制字符的是( )。
- 关于putchar()的说法正确的是( )。
- 关于格式控制字符串%-m.ns,正确的说法是( )。
- double d;float f;long l;int i;i=f=l=d=20/3;printf("%d,,%.1f,%.1f,",i,l,f,d);上面程序段的运行结果是( )。
- unsigned a=65535;printf("%d,%o,%x",a,a,a);TC中整型变量占2个字节,则上面程序段的运行结果是( )。
- 关于算术运算,下面四个说法中正确的是( )。
- 表达式('A'+0.32f)计算结果的类型是( )。
- 设a、b都是int型变量,则表达式(a=1, a+=1, b=a, b*2, a+b)的值是( )。
- char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);数字0的ASCII码是48,上面程序段的运行结果是( )。
- 参与运算的对象必须是整数的运算符是( )。
- 若有定义int a=10,c=2; const int b=5;则正确的赋值表达式是( )。
- 设有数据定义char c1=65,c2=66;int a1=1,a2=2;float x1=1.1, x2=2.2;则下面四个选项中,系统不进行类型转换就能直接运算的是( )。
- int x=10,y=3;printf("%d,%d\n",x--,--y);上面程序段的运行结果是( )。
- 字符串"ab\108g"在内存中占的字节数是( )。
- 关于表达式a*=b+c,下面说法正确的是( )。
- 设整数和实数的大小都不超过各自变量的存储范围,下面4种说法中,正确的是( )。
- 下面4个选项中,能使符号常量代表3的定义是( )。
- 下面选项中,属于合法的字符常量的是( )。
- 以下哪个选项中是合法的用户自定义标识符?( )。
- 能正确定义3个变量并为它们赋初值5的是( )。
- 关于字符串"CHINA",下面说法正确的是( )。
- c是字符变量,关于语句“c='A'+'6'-3;”,下面说法正确的是( )。
- 下面4个选项中,均不是合法浮点数的选项是( )。
- 下面几组代码中正确的是( )。
- 下面4个选项中,全部都是合法整型常量的是( )。
- 以下四个程序中,完全正确的是( )。
- 计算机能直接执行的文件是( )。
- 在函数体中,关于数据定义语句和非数据定义语句(即执行语句)的位置,下面说法正确的是( )。
- C语言属于以下程序设计语言的哪个类别?( )。
- 下列选项中,属于多行注释的是( )。
- 在C语言程序中( )。
- C语言源程序中一般可以包含几个函数?( )。
- 关于C语言,以下描述中错误的是( )。
- 程序的运行结果不正确,这种错误属于( )。
- 一个C程序可能出现的错误有( )。
答案:对
答案:错
答案:对
答案:错
答案:对
答案:对
答案:错
答案:错
答案:错
答案:对
答案:错
温馨提示支付 ¥5.00 元后可查看付费内容,请先翻页预览!