兰州大学C语言程序设计
4. (4分)int k=0;do{++k;}while(k>=0);是无限循环的语句
答案是:错误
3. (4分)main(){int x,y,z;x=1;y=1;z=0;x=x||y&&z;printf(.%d,%d.,x,x&&!y||z);}程序的运行结果是1,1
答案是:错误
2. (4分)C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中.
答案是:错误
1. (4分)若有说明int c; 则while(c=getchar());是错误的C语句.
答案是:正确
21. (4分)根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary
答案是:D. printf('%c\n',class[2].name[0])
(4分)凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A. auto B. static C. extern D. register
答案是:A. auto
19. (4分)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( ) A. float型 B. int型 C. long型 D. double型
答案是:B. int型
18. (4分)以下运算符优先级最高的是( ) A. && B. & C. || D. |
答案是:B. &
17. (4分)已有定义int k=2;int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是( ) A. k=*p1+*p2 B. p2=k C. p1=p2 D. k=*p1*(*p2)
答案是:B. p2=k
16. (4分)C语言提供的合法关键字是( ) A. break B. print C. funtion D. end
答案是:A. break
15. ((4分)语句while(!E);中的!E等价于( ) A. E= =0 B. E!=1 C. E!=0 D. E= =1
答案是:A. E= =0
14. (4分)定义一个结构体变量时,系统分配给它的内存是( ) A. 结构体中第一个成员所需内存量 B. 结构体中最后一个成员所需内存量 C. 成员中占内存量最大者所需内存量 D. 各成员所需内存量的总和
答案是:D. 各成员所需内存量的总和
13. (4分)若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A. 4 B. 16 C. 32 D. 52
答案是:C. 32
12. (4分)设有以下程序:#inlude main(){int * *k,*j,i=100;j=&i;k=&j;printf(“%d”, * *k);}上述程序的输出结果是( ) A. 运行错误 B. 100 C. i
答案是:B. 100
11. (4分)以下不正确的定义语句是( ) A. double x[5]={2.0,4.0,6.0,8.0,10.0} B. int y[5]={0,1,3,5,7,9} C. char c1[]={.1.,.2.,.3
答案是:B. int y[5]={0,1,3,5,7,9}
(4分)若有以下定义:char s[10]=.include.,*p=s;则不能代表字符u的表达式是( ) A. s[4] B. s+4 C. *(p+4) D. p+=4,*p
答案是:B. s+4
8. (4分)以下有关宏替换的叙述不正确的是( ) A. 宏替换不占用运行时间 B. 宏名无类型 C. 宏替换只是字符替换 D. 宏名必须用大写字母表示
答案是:D. 宏名必须用大写字母表示
7. (4分)判断char型变量c1是否小写字母的正确表达式为 A. .a.<=c1<=.z. B. (c1>=.a.)&&(c1<=.z.) C. (c1>=a)&&(c1<=z) D. (.a.<=c1)||(.z
答案是:B. (c1>='a')&&(c1<='z')
6. (4分)对说明语句int a[10]={6,7,8,9,10};的正确理解是( ) A. 将5个初值依次a[1]至a[5] B. 将5个初值依次a[0]至a[4] C. 将5个初值依次a[5]至a[9] D. 将
答案是:B. 将5个初值依次a[0]至a[4]
5. (4分)设有以下程序段int x=0,s=0;while(!x!=0) s+=++x;printf(.%d.,s);则( ) A. 运行程序段后输出0 B. 运行程序段后输出1 C. 循环的控制表达式不正确 D.
答案是:B. 运行程序段后输出1
4. (4分)设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是( ) A. while循环执行10次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次
答案是:C. 循环体语句一次也不执行
(4分)以下叙述中不正确的是( ) A. 预处理命令都必须以#开始 B. 在C程序中凡是以#开始的语句行都是预处理命令行 C. C程序在执行过程中对预处理命令行进行处理 D. 以下是正确的宏定义 #define IBM_
答案是:D. 以下是正确的宏定义 #define IBM_PC
2. (4分)以下对C语言函数的有关描述中,正确的是 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序
答案是:A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
1. (4分)以下叙述正确的是( ) A. 在C程序中,main函数必须位于程序的最前面 B. 在C程序的每一行只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写
答案是:C. C语言本身没有输入输出语句
4. (4分)C语言是解释性语言
答案是:错误
3. (4分)在计算机内部,unsigned int 和 int类型的数据所占存储空间大小是一样的.
答案是:错误
21. (4分)以下不正确的说法为( ) A. 在不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在函数内定义的变量只在本函数范围内有效 D. 在函数内的复合语句中定义的变量在本函数范围内有效
答案是:D. 在函数内的复合语句中定义的变量在本函数范围内有效
20. (4分)若有以下定义,int a,b;float x; 则正确的赋值语句是( ) A. a=1,b=2 B. b++ C. a=b=5 D. b=int(x)
答案是:B. b++
19. (4分)以下程序main(){int i=010,j=10,k=0x10;printf(.%d,%d,%d .,i,j,k);的输出结果是( ) A. 8,10,16 B. 8,10,10 C. 10,10,10
答案是:A. 8,10,16
18. (4分)根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary
答案是:D. printf('%c\n',class[2].name[0])
17. (4分)若有定义:int (*p)[4];则标识符p( ) A. 是一个指向整型变量的指针 B. 是一个指针数组名 C. 是一个指针,它指向一个含有四个整型元素的一维数组 D. 定义不合法
答案是:C. 是一个指针,它指向一个含有四个整型元素的一维数组
16. (4分)若有说明:int a[10];则对数组元素的正确引用是( ) A. a[10] B. a[3,5] C. a(5) D. a[10-10]
答案是:D. a[10-10]
15. (4分)struct st {int age;int num;}stul, *p; p=&stul;以下对结构体变量stul中成员age的非法引用是( ) A. stul.age B. age C. p-->age
答案是:B. age
14. (4分)C语言中,逻辑真表示为( ) A. TRUE B. .y.或.Y. C. 1 D. 非零值
答案是:C. 1
13. (4分)设有以下程序片段:char a[ ]=.hello.,*p;p=a;printf(.%d.,*(p+5));执行上面的程序片段后的结果为( ) A. 111 B. 0 C. 104 D. 不确定的值
答案是:B. 0
12. (4分)阅读以下程序,int w=1,x=2,y=3,z=4,m;m=w A. 1 B. 2 C. 3 D. 4
答案是:A. 1
11. (4分)一下关于宏替换的叙述不正确的是 A. 宏替换只是字符替换 B. 宏名无类型 C. 宏替换不占用运行时间 D. 宏替换不占用编译时间
答案是:D. 宏替换不占用编译时间
10. (4分)设有整型变量m值为8,下列赋值语句中,正确的是( ) A. m=m++ B. ++m=6 C. m+1=8 D. m+1+=8
答案是:A. m=m++
9. (4分)设整型变量a和b的值分别为8和9。printf(.%d,%d.,(a++,++b),b--);的输出是( ) A. 8,8 B. 8,7 C. 9,9 D. 10,9
答案是:C. 9,9
8. (4分)下面的程序main(){int x=3;do{printf(“%d ”,x-=2);}while(!(--x));},描述正确的是( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D
答案是:B. 输出的是1和-2
7. (4分)下列有关字符数组与字符串的说法中正确的是( ) A. 字符数组中存放的一定是—个字符串 B. 所有的字符数组都可以被当作字符串处理 C. 对存放字符串的字符数组可以象一般数组一样对数组中的单个元素进行操作
答案是:C. 对存放字符串的字符数组可以象一般数组一样对数组中的单个元素进行操作
6. (4分)以下运算符优先级最高的是( ) A. && B. & C. || D. |
答案是:B. &
5. (4分)以下read函数的调用形式中,参数类型正确的是( ) A. read(int fd,char *buf,int count) B. read(int *buf,int fd,int count) C. rea
答案是:A. read(int fd,char *buf,int count)
4. (4分)有int x=3,y=4,z=5;则下面表达式中值为0的是( ) A. x.&&.y. B. x<=y C. x||y+z&&y-z D. !((x
答案是:D. !((x
3. (4分)定义一个联合体变量时,系统分配给它的内存是( ) A. 联合体中第一个成员所需内存量 B. 联合体中最后一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 各成员所需内存量的总和
答案是:C. 成员中占内存量最大者所需的容量
2. (4分)根据题目中已给出的数据输入和输出形式,main(){int x;float y;printf(.enter x,y:.);输入语句;输出语句}输入形式:enter x,y:2 3.4输出形式:x+y=5.40, 程序中输入输
答案是:B. scanf('%d%f',&x,&y),printf('\nx+y=%4.2f',x+y)
1. (4分)判断char型变量c1是否小写字母的正确表达式为 A. .a.<=c1<=.z. B. (c1>=.a.)&&(c1<=.z.) C. (c1>=a)&&(c1<=z) D. (.a.<=c1)||(.z
答案是:B. (c1>='a')&&(c1<='z')
3. (4分)已有定义int i,j;float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数scanf(.%o%x%e.,&i,&j,&x);调用语句的数据输入形式是-12ucu4.1034e2(u代表
答案是:正确
2. (4分)C语言中形参到实参传递是双向的
答案是:错误
1. (4分)在C 语言中,共用体类型属于构造类型
答案是:正确
21. (4分)设有以下程序片段, int i=010,j=10,k=0xl0;printf(.%d,%d,%d.,k,j,i);请问执行后的输出结果是( ) A. 16,10,8 B. 8 10 16 C. 10,10,
答案是:A. 16,10,8
20. (4分)要打开一个已存在的非空文件"file"用于修改,选择正确的语句 A. fp=fopen(.file.,.r.) B. fp=fopen(.file.,.w.) C. fp=fopen(.file.,.r+.
答案是:C. fp=fopen('file','r+')
19. (4分)有下列程序段:char ch; int s=0; for(ch=’A’;ch<’Z’;++ch) if(ch%2= =0) s++; printf(“%d”,s);则执行上述片段后,程序的输出结果是( ) A. 1
答案是:A. 13
18. (4分)已有程序段和输入数据的形式,main(){ int a;float f;printf(.Input number:.);(输入语句)printf(. f=%f,a=%d .,f,a);}Input number:4.5uu
答案是:D. scanf('%f%d',&f,&a)
17. (4分)10+’a’+1.5-567.345/’b’的结果是( )型数据 A. long B. double C. int D. unsigned float
答案是:B. double
16. (4分)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时,函数feof(fp)值 A. 0 B. 1 C. -1 D. 一个非0值的
答案是:D. 一个非0值的
15. (4分)下面四个选项中,均是不合法的用户标识符的选项是( ) A. A,P_0,do B. float,la0,_A C. b-a,goto,int D. _123,temp,INT
答案是:C. b-a,goto,int
14. (4分)判断char型变量ch是否为小写字母的正确表达式为( ) A. a.<=ch<=.z. B. (ch>=a)&&(ch<=z) C. (ch>=.a.)||(ch<=.z.) D. (ch>=.a.)&
答案是:D. (ch>='a')&&(ch<='z')
13. (4分)下面程序#include main(){int a=1,b=10;do{b-=a;a++;}while(b--<0);printf(.a=%d,b=%d .,a,b);}的运行结果是( ) A. a=3,b=11
答案是:B. a=2,b=8
12. (4分)以下运算符优先级最高的是( ) A. && B. & C. || D. |
答案是:B. &
11. (4分)定义一个联合体变量时,系统分配给它的内存是( ) A. 联合体中第一个成员所需内存量 B. 联合体中最后一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 各成员所需内存量的总和
答案是:C. 成员中占内存量最大者所需的容量
10. (4分)printf函数中用到格式符.%4s.,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为( ) A. 从左起输出该字符串,右补空格 B.
答案是:C. 右对齐输出该字符,左补空格
9. (4分)设有说明:char *str[10];则标识符str的意义是( ) A. str是一个指向有10个元素的数组的指针 B. str是一个有10个元素的数组,数组元素的数据类型是指向char型的指针型 C. st
答案是:B. str是一个有10个元素的数组,数组元素的数据类型是指向char型的指针型
8. (4分)下面程序main(){int x=4,y=0,z;x*=3+2; printf(“%d”,x);x*=y= =(z=4); printf(“%d”,x);}的输出结果是( ) A. 14 40 B. 20 0
答案是:B. 20 0
7. (4分)以下对二维数组a的正确说明是( ) A. int a[3][] B. float a(3,4) C. double a[1][4] D. float a(3)(4)
答案是:C. double a[1][4]
6. (4分)下面能正确进行字符串赋值操作的是( ) A. char s[5]={.ABCDE.} B. char s[5]={.A.,.B.,.C.,.D.,.E.} C. char *s D. s=.ABCDE.
答案是:C. char *s
5. (4分)若数组a有m列,则ali][j]之前的数组元素个数为( ) A. (i-1)*(i-1) B. i*m+j+1 C. i*m+j-1 D. i*m+j
答案是:D. i*m+j
4. (4分)下面是对s的初始化,其中不正确的是( ) A. char s[5]={.abc.} B. char s[5]={.a.,.b.,.c.} C. char s[5]=.. D. char s[5]=.abc
答案是:D. char s[5]='abcde'
3. (4分)C语言规定,函数返回值的类型是由( )所决定。 A. return语句中的表达式类型 B. 调用该函数时的主调函数类型 C. 调用该函数是系统临时指定 D. 在定义该函数时所指定的函数类型
答案是:D. 在定义该函数时所指定的函数类型
2. (4分)变量的指针,其含义是指变量的( ) A. 值 B. 地址 C. 名 D. 一个标志
答案是:B. 地址
1. (4分)根据下面的定义,能打印出字母“M”的语句是( )struct person{char name[9];int age;};struct person class[10]={.John.,17,.Paul.,19,.Mary.
答案是:D. printf('%c\n',class[2].name[0])
4. (4分)main(){int x,y,z;x=1;y=1;z=0;x=x||y&&z;printf(.%d,%d.,x,x&&!y||z);}程序的运行结果是1,1
答案是:错误
(4分)strcmp3(char *s,char *t){for (;*t= =*s;){if (!*t) return 0; t++;s++;}return (*s-*t);}库函数strcmp(char*s,char*t)是功能相等的程
答案是:正确
2. (4分)对for(表达式1; ;表达式3)可理解为for (表达式1;1;表达式3)
答案是:正确
1. (4分)int k=0;do{++k;}while(k>=0);是无限循环的语句
答案是:错误
21. (4分)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( ) A. 1 B. 2 C. 3 D. 4
答案是:B. 2
20. (4分)一下关于宏替换的叙述不正确的是 A. 宏替换只是字符替换 B. 宏名无类型 C. 宏替换不占用运行时间 D. 宏替换不占用编译时间
答案是:D. 宏替换不占用编译时间
19. (4分)在C语言中,反斜杠符是( ) A. \n B. \t C. \v D. \\
答案是:D. \\
18. (4分)以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf
答案是:A. 5, 2, 3
17. (4分)已有程序段和输入数据的形式,main(){ int a;float f;printf(.Input number:.);(输入语句)printf(. f=%f,a=%d .,f,a);}Input number:4.5uu
答案是:D. scanf('%f%d',&f,&a)
16. (4分)设有以下程序片段:char a[ ]=.hello.,*p;p=a;printf(.%d.,*(p+5));执行上面的程序片段后的结果为( ) A. 111 B. 0 C. 104 D. 不确定的值
答案是:B. 0
15. (4分)关于fseek函数,以下有关操作的叙述不正确的是( ) A. 可以改变文件的位置指针 B. 可以实现文件的顺序读写 C. 可以实现文件的随机读写 D. 只可以顺序定位文件的位置指针
答案是:D. 只可以顺序定位文件的位置指针
14. (4分)printf函数中用到格式符.%4s.,其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为( ) A. 从左起输出该字符串,右补空格 B.
答案是:C. 右对齐输出该字符,左补空格
13. (4分)下面程序的运行结果是( )#include main(){int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(.%2d.,a[i]);}} A. 4
答案是:C. -4 0 4 4 3
12. (4分)若有以下定义:int a[ ]={1,2,3,4,5,6,7,8,9},*p=a;则值为5的表达式是( ) A. p+=4,*(p++) B. p+=4,*++p C. p+=5,*p++ D. p+=
答案是:A. p+=4,*(p++)
11. (4分)以下叙述正确的是( ) A. 在C程序中,main函数必须位于程序的最前面 B. 在C程序的每一行只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼
答案是:C. C语言本身没有输入输出语句
10. (4分)以下对C语言函数的有关描述中,正确的是 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程
答案是:A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
9. (4分)下面程序的运行结果是( )#includemain(){int i,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b-->=0) k++;}printf(.%d,%d.,k,b);} A.
答案是:D. 8,-2
(4分)以下程序#include main(){printf(.%d .,NULL);}的输出结果是( ) A. 不确定的值(因变量无定义) B. 0 C. -1 D. 1
答案是:B. 0
7. (4分)根据题目中已给出的数据输入和输出形式,main(){int x;float y;printf(.enter x,y:.);输入语句;输出语句}输入形式:enter x,y:2 3.4输出形式:x+y=5.40, 程序中输入输
答案是:B. scanf('%d%f',&x,&y),printf('\nx+y=%4.2f',x+y)
6. (4分)若有以下定义, int k=7,x=12, 则能使值为3的表达式是( ) A. x%=k%=5 B. x%=k-k%5 C. x%=(k-k%5) D. (x%=k)-(k%=5)
答案是:D. (x%=k)-(k%=5)
5. (4分)函数ftell的作用是( ) A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示 B. 取得当前文件指针的位置,该位置为相对于文件末尾的位移量表示 C. 出错时返回值为0 D. 以上叙述都不
答案是:A. 取得当前文件指针的位置,该位置为相对于文件开头的位移量表示
4. (4分)下列运算符中优先级最低的是( ) A. ? : B. && C. + D. !=
答案是:A. ? :
(4分)设有以下程序:#inlude main(){int * *k,*j,i=100;j=&i;k=&j;printf(“%d”, * *k);}上述程序的输出结果是( ) A. 运行错误 B. 100 C. i的地址
答案是:B. 100
2. (4分)以下程序的运行结果为( )#include main(){struct date{int year,month,day;}today; printf(.%d .,sizeof(struct date));} A. 6
答案是:A. 6
1. (4分)设E为表达式,以下与do…while(E);不等价的语句是 A. do…while(!E==0) B. do…while(E>0||E<0) C. do…while(E==0) D. do…while(E
答案是:C. do…while(E==0)
目前为: 1/1 页  首页   上页 下页 尾页