C语言测试题

合集下载

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。

C语言练习题及其答案

C语言练习题及其答案

C语言练习题及其答案C语言练习题及其答案C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

C语言能以简易的方式编译、处理低级存储器。

下面是店铺帮大家整理的C语言练习题及其答案,仅供参考,大家一起来看看吧。

C语言练习题及其答案1一、选择题(7分,每小题0.5分)1.C语言源程序的基本单位是(B)。

A过程 B函数 C子程序 D标识符2.下列程序的输出结果是(C)。

main( ){ int a=7,b=5;printf("%d ",b=b/a);}A 5B 1C 0 D不确定值3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B)。

A 7B 8 C9 D 24.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;A 125,31,1B 125,1,20C 125,31,20D 125.534,2,205.设有如下程序段,下面描述中正确的是(C)。

int k=10;while(k=0) k=k-1;A循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D 循环体语句执行一次6.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。

A p="abcd";B a="abcd";C *p="abcd";D *a="abcd";13.设有以下程序段,则值为6的表达式是()。

struct st { int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,0},*p;p=&a[0];A p++->nB ++p->nC p->n++D (*p).n++14.C语言中的文件类型只有()。

C语言基础知识测试题 全面完整

C语言基础知识测试题 全面完整

C语言基础知识测试题全面完整c语言基础知识测试题全面完整基础知识测试题一.单项选择题1.以下不正确的c语言标识符是(d)a.abcb.abcc.a_bcd.ab.c2.以下正确的c语言标识符是(c)a.%xb.a+bc.a123d.test!3.一个c语言程序的继续执行从(a)。

a.main()函数已经开始,直至main()函数完结b.第一个函数已经开始,直至最后一个函数完结c.第一个语句已经开始,直至最后一个语句完结d.main()函数已经开始,直至最后一函数完结4.在c语言程序中,main(c)的边线()。

a.必须做为第一个函数b.必须作为最后一个函数c.任意d.必须放到它所调用的函数之后5.一个c语言程序就是由(b)。

a.一个主程序和若干个子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成6.c语言源程序的基本单位是(b)。

a.过程b.函数c.子程序d.标识符7.编辑程序的功能就是(a)。

a.创建并修正程序c.将c源程序编译成目标程序d.调试程序e.命令计算机继续执行选定的操作方式8.c编译程序就是(d)。

a.c语言程序的机器语言版本b.一组机器语言指.d.将c源程序编译成目标程序的程序f.由制造厂家提供更多的一套应用软件b9.不属于字符型常量的就是(d)a.'a'b.\'\\x72'10.设charch;以下恰当的赋值语句就是:(b)a.ch='123';b.ch='\\xff';c.ch='\\08';d.ch=\11.以下并使i的运算结果为4的表达式就是(d)a.inti=0,j=0;(i=3,(j++)+i);b.inti=1,j=0;j=i=((i=3)*2);c.inti=0,j=1;(j==1)?(i=1):(i=3);d.inti=1,j=1;i+=j+=2;a12.若t为double类型,表达式t=1,t+5,t++的值是(d)a.1b.6.0c.2.0d.1.0c13.设整型变量m,n,a,b,c,d均为1,继续执行“(m=a>b)&&(n=a>b)”后m,n的值就是(b)a.0,0b.0,1c.1,0d.1,1b14.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(ca.3,3,2b.3,2,2c.3,2,3d.2,3,2b15.若a=1,b=2,c=3,d=4,则条件表达式a16.设intn=7;则++n+1==9的结果是(c)a.trueb.falsec.1d.017.设a=2,b=2;则++a+b的结果就是(d),a的结果就是(b),b的结果就是(a)a.2b.3c.4d.518.设a=2,则执行b=a==!a;语句后,b的结果是(a)a.0b.1c.2d.319.建有以下语句,则c的二进制值就是()chara=3,b=6,c;c=a^b<<2;a.00011011b.00010100c.00011100d.0001100020.在c语言类型说明中,int、char、short等类型的长度是(a)a.固定的b.由用户自己定义的c.任意的d.与机器字的长度有关的二.填空题1.c语言中的标识符就可以由三种字符共同组成,它们就是、、。

c语言入门试题及答案

c语言入门试题及答案

c语言入门试题及答案一、选择题1. 下列哪个是C语言的关键字?A) mainB) outputC) printD) if答案:D2. 在C语言中,用来声明整型变量的关键字是?A) intB) charC) floatD) double答案:A3. 下列哪个符号用于表示“等于”?A) ==B) !=C) >答案:A4. 在C语言中,用来表示字符类型的关键字是?A) intB) charC) floatD) double答案:B5. 下列哪个函数可以输出文本到屏幕上?A) scanfB) getcharC) printfD) gets答案:C二、填空题1. C语言中,整型变量的大小为________个字节。

答案:42. 下列代码的运行结果是什么?int x = 5;int y = 2;printf("%d", x % y);```答案:13. C语言中,用于标识单行注释的符号是________。

答案://4. 下列代码的运行结果是什么?```char name[10] = "John";printf("%s", name);```答案:John三、编程题1. 编写一个程序,接收用户输入的两个整数,并计算它们的和。

```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 编写一个程序,判断一个输入的整数是否为偶数。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是一个偶数。

c语言测试题

c语言测试题

c语言测试题1.题目一编写一个C语言程序,要求从键盘输入两个整数,然后输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数: ");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```2.题目二编写一个C语言程序,要求从键盘输入一个整数,然后判断它是否为素数。

解答:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```3.题目三编写一个C语言程序,要求实现冒泡排序算法对一个数组进行排序。

解答:```c#include <stdio.h>void bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {5, 2, 9, 1, 3};int size = sizeof(arr) / sizeof(arr[0]); printf("排序前的数组: ");printArray(arr, size);bubbleSort(arr, size);printf("排序后的数组: ");printArray(arr, size);return 0;}```以上是三个C语言测试题的解答,分别涉及输入输出、数学运算和数组排序等。

C语言测试题及答案

C语言测试题及答案

一、选择题1.语句int a=10,*point=&a; D 其值不为地址。

A. pointB. &aC. &pointD. *point2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 BA. ”visual C++”B.str的首地址C. \nD.”v”4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为AA.T,Father,FB.Teaher,F,FatherC. Teacher,Father,FatherD.语法错,无输出5.下列说明或赋值语句,不正确的是 CA. char *p;p=”Visual C++”;B. char p1[12]={‘v’,’i’,’s’,’u’};C. char p2[12];p2=”Visual C++”D. char p3[]=”Visual”;6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 BA.p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int)D.p+=(2*4+3)*sizeof(int)7.语句int i,*p1,**p2;以下语句语法不正确的是 BA.p1=&i;B. p2=&i;C.p2=&p1;D.i=’\0x23’;8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能..把结点b连接到结点a之后的语句是 BC. p->next=&b;D.(*p).next=q;9.下面正确的语句是 AA. int a[3][4],(*p)[4]; p=a;B. int a[3][4],*p[4]; p=a;C. int a[3][4],*p; p=a;D. int a[3][4],**p;*p=a;10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 BA.fp=fopen("a:\\aa.dat","ab");B. fp=fopen("a:\\aa.dat","a");C. fp=fopen("a:\\aa.dat","r+");D. fp=fopen("a:\\aa.dat","w");11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, BA.函数返回值100B. 函数返回值150C. 函数返回二个值100和150D. 语句return 100,150;语法错.12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 AA.该数组的首地址B. 该数组的元素个数C. 该数组中的各元素值D. 该数组的大小13.执行以下语句序列:则 Aenum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //Ac1=Mon; //Bprintf(“%d”,c1);A.输出1B.输出2C.输出0D. B行语法错14.执行以下语句序列:则 Cchar *p1=”Speaking”; //Achar *p2=”English”; //Bchar *p3=”a piece of cake”; //Cchar *str[]={p1,p2,p3}; //Dprintf(“%c”,*(str[0]+1));A.输出EnglishB.输出SpeakingC.输出pD. D行语法错二、填空题1.(2*2分=4分)下面程序的运行结果为16 、 2void main( ){static int a[3][2]={{12},{14,16},{1,2}};int *p=a[1];printf(“%d\n”,*(p+1));printf(“%d\n”,*(p+3));}2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,*(*(p+1)+1)的值为7static int b[3][2]={1,3,5,7,9,11};int (*p)[2];p=b;3.(1*4分=4分)下面程序的运行结果为26#include<stdio.h>void sub(int *x,int i,int n){if(n<=i)sub(x,i,3*n);*x+=n++; //相当于*x=*x+(n++)}void main( ){int x=0;sub(&x,12,2);printf(“%d”,x);}4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(“%s\n”,q);printf(“%s\n”,p);}5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main(){short ar[5]={1,2,3,4,5 };short * par=&ar[1];int i;for(i=0; i<4; i++){printf(“%d %d %d”,ar[i],par[i],*(ar+i));}}6.(2*2分=4分) 以下程序运行结果是__200 100_____void swap2(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main( ){ int a=100,b=200;swap2(&a,&b);printf(“%d\t%d”,a,b);}7.(3*2分=6分)void fun(int n, int *s){ int f1,f2;if(n= =1||n= =2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“%d\t%d\n”,f1,f2);}}void main( ){ int x;fun(4,&x);printf(”x=%d\n”,x);}程序输出的第一行是1 1 第二行是4 1 最后一行是x=108. (3*2分=6分)void f(int *q1,int *q2,int *q3){*q3=*q1+*q2;}void main( ){ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;for(i=2;i<9;i++)f(p1++,p2++,p3++);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf(“%d”,a[i][i]);printf(’\n’);}}程序输出的第一行是111 第二行是555 最后一行是343434 9.(2*3分=6分)int f(int x,int y){return x*y;}void main( ){ int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i++){ switch(i){case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;}printf(”j=%d”,j);}}程序输出的第一行是j=2 第二行是j=6 最后一行是j=10三、完善程序1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.struct NODE{int data;NODE *next;};int min(NODE *first){NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next)if(m> p->data)m=p->data;return m;}2.(3*2分=6分)以下程序求二维数组的平均值float average(float (*p)[4],int n){float sum=0;for(int i=0; i<n ;i++){for(j=0;j<4;j++)sum+= (*p)[j] 或 *(*p+j) ;p++;}return sum/(n*4);}void main( ){ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};printf(”平均值=%f ”,average(score, 3 ));}3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。

C语言试题

C语言试题

C测试题一、选择题(20题,共44分)1.常见的Linux发行版本有很多,下面不是Linux发行版本的是(C )。

[A] Red Hat Linux [B] Ubuntu Linux [C] X Window [D] SuSE Linux2.下面不是对Linux操作系统特点描述的是( B )。

[A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务3.下面( C )命令不能用来显示文件的内容。

[A] more [B] less [C] find [D] cat4.查看创建目录命令mkdir的帮助文档,可以使用命令( D )。

[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir5.假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下( C )通配符可以挑选出其中的编号为1、3、5的文件。

[A] file_*.txt [B] flie_?.txt [C] file_[135].txt [D] file_[^135].txt6.文件权限r-x-wxr--对应的八进制表示形式为( D )[A] 0536 [B] 0654 [C] 0656 [D] 05347.在C语言中,要求运算数必须是整型的运算符是( D )。

[A] / [B] ++ [C] != [D] %8.C语言中,逻辑“真”等价于( C )。

[A] 大于零的数[B] 大于零的整数[C] 非零的数[D] 非零的整数9.目前流行的两种软件包管理机制,Debian使用( D )软件包,Redhat使用( B )软件包。

[A] tgz [B] rpm [C] tar [D] deb10.下面函数的功能是( A )。

int fun (char*x){char*y=x;while(*y++);return(y-x-1);}[A] 求字符串的长度[B] 比较两个字符串的大小[C] 将字符串x复制到字符串y[D] 将字符串x连接到字符串y后面11.C语言程序的三种基本程序是( A )。

C语言测试题目

C语言测试题目

一、顺序结构1.从键盘输入一个大于0的实数,编程计算并输出以该数位半径的圆面积、圆周长及球体积(取圆周率为3.14)要求输出时有适当的文字说明测试数据:输入2.5输出圆周长15.700000 圆面积19.625000 球体积为65.4166672.从键盘输入两个大于0的实数,编程计算并输出以其为长和宽的矩形的周长和面积。

要求输出时有适当的文字说明测试数据:输入 1.2 3.5输出矩形周长9.400000 矩形面积4.2000003.从键盘输入一个华氏温度值,计算并输出其摄氏温度的值。

提示:摄氏温度c=(5/9)*(f-32) f为华氏温度测试数据:输入华氏温度值100输出摄氏温度值37.7777784.从键盘输入三个实数,计算并输出它们的和及积。

测试数据:输入 1.1 2.2 3.5输出和6.800000 积8.4700005、从键盘输入三个整数,计算并输出它们的和及平均值测试数据:输入 2 5 7输出和14.000000 平均值4.6666676、输入一个三位数,依次输出该数的符号和百位、十位、个位数字。

测试数据:输入-752输出和符号- 百位7 十位5 个位2二、选择结构1.从键盘输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。

2.从键盘输入三个实数a、b、c,输出其中最大的数。

测试数据:输入5.3 6.5 2.1输出最大数6.53.从键盘输入一个正整数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则输出“yes”,否则输出“no”。

测试数据:(1)输入12 输出yes(2)输入16 输出no4.从键盘输入1到7之间的某个正整数,输出表示一星期中相应的某一天的英文单词:Monday、 Tuesday等等,用switch语句做。

测试数据:输入7输出Sunday5.从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

C语言综合测试题(题目)

C语言综合测试题(题目)

选择题(每题2分,共计100分)1.分析下面的C程序, 输出结果是()#include<stdio.h>void main(){int num=0;while(num<=2){printf("%d ",num);num++;}}A. 1 2 3B.0 1 2C. 2 3D. 1 22.以下对二维数组a的正确说明是()。

A、 int a[3][];B、 floatf a(3,4);C、 double a[1][4];D、 float a(3)(4);3.要将20赋值到数组Num的第三个元素,正确的方法是()A.Num[3]=20B.Num[2]=20C.Num[4]=20D.[3] Num=204.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为()A.不能确定B.68C. CD. D5.以下描述中正确的是()。

A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作D、do-while循环中,根据情况可以省略while6.在C语言中,要求运算数必须是整型的运算符是()A、 /B、 ++C、 !=D、%7.以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行-次D、有语法错误8.在C语言中,下列正确的字符型常量是()A."f"B.'9'C.#D.3659.在C语言中,下面()是逻辑运算符中优先级最高的。

A.!B.&&C.||D.|E.&10.以下述叙不正确的是()A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中注释说明只能位于一条语句的后面11.为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与()配对。

C语言在线测试题目及答案

C语言在线测试题目及答案

C语言在线测试题目及答案SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章第一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是: BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是: BA、0xf6B、0876C、.5e-6D、 3e 23、属于低级语言的计算机语言是( )。

BA、机器语言B、汇编语言C、Java语言D、Pascal语言4、对于链接,正确的说法为()。

DA、链接是将源程序和库函数链接到一起,生成可执行程序。

B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。

C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。

D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。

5、下列不能表示常量大写英文字母A的是()。

BA、常量:‘A’B、常量:“A”C、常量:‘\x41’D、常量:‘\101’第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCDA、1111 1111 1111 1000B、1000 0000 0000 0000C、1000 0000 0000 1000D、1111 1111 1111 01112、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是( )。

BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括( )。

c语言 100题

c语言 100题

c语言100题1. 构成C语言程序的基本单位是()。

A.函数B.变量C.子程序D.语句是不正确的转义字符。

2. C语言规定:在一个源程序中,main()函数的位置()。

A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。

A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。

A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。

A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。

A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。

A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。

A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。

A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。

C语言测试题

C语言测试题

测试题1. 以下正确的叙述是:A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符2. 以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面3.在C语言中,要求运算数必须是整型的运算符是。

A) / B) ++ c) != D)%4.下面正确的字符常量是:A)"a" B)'\\'' C)'W' D)’’5.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:main(){char ch1 ,ch2 ,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);}输入形式: A B C输出形式: A B CA) scanf("%c%c%c",&ch1,&ch2,&ch3);B) scanf("%c,%c,%c", &ch1,&ch2, &ch3);C) scanf("%c %c %c",&ch1,&ch2,&ch3);D) scanf("%c%c",&ch1,&ch2,&ch3);6.C语言规定:在一个源程序中,main函数的位置。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后7.一个C语言程序是由A)一个主程序和若干子程序组成 B)函数组成C)若干过程组成 D)若干子程序组成8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为A)D B)68 C)不确定的值 D)C9.以下符合C语言语法的赋值表达式是A)d=9+e+f=d+9B) d=9+e,f=d+9C)d=9十e,e++,d十9 D)d=9十e++=d十7 10.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A)char<int <1ong int<=float<doubleB)char=int<1ong int<=float<doubleC)char< int <1ong int=float=doubleD)char=int =1ong int<=float<double11.若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)A)4 B)16 C)32 D)5212.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符13.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:A)7 B)8 C)6 D)214.以下说法正确的是:A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);1. 在do-while循环中,任何情况下都不能省略while.2.在C程序中,无论是整数还是实数,都能被准确无误地表示3.定义 int x[5],n;则x=x+n;或x++;都是正确的.4.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

C语言试题

C语言试题

C语言测试一、选择题1.选出作为C语言用户标识符的一组是()A.sum,define,WORDB. a1,-abc,CASEC. a3_b3,_123,maxD.Num1,2a,m_12.已知代码如下,则B的值为()#define A 5+3 #define B A*AA.23B. 19C. 64D.不确定3.若变量已正确定义并赋值,下面符合C语言语法的表达式()A.Int 18.5%3B. a=a+=c+bC. a:=b+1D. b=c+24.将整型变量a和b中的数进行交换,下面选项中,错误的是( )t=a;a=b;b=t B. t=b;b=a;a=t C. a=a+b;b=a-b;a=a-b D. a=t;t=b;b=a5. 表达式a=3*5,a*4,a+5的值为()A. 20B. 15C. 65D. 106. 设有int a=11;则表达式a++*1/3的值为()A. 4B.11C. 12D. 37. 以下程序代码运行后输出的结果是()main(){char c1=’6‘,c2=’0‘;printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);}A. 因输出格式不合法,输出出错信息B. 6,0,6,102C. 6,0,5,7D. 6,0,7,68. 关于putchar()函数,错误的是()A. putchar(‘\n’);B. putchar(‘a’)C. putchar(“97”);D. putchar(65)9. 有以下语句,输入“abc”,则输出的结果是()char ch;ch=getchar();putchar(ch);0A. a b cB. aC. 97D. abc10. 已知;a=2,b=3,c=4,则以下选项中值为0的表达式为()A. c>b>aB.aC. a+1==bD. c=b+111. 以下程序代码运行输出的结果是()main (){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf(”%d\n”,d);}A. 1B. aC. zD. Z12. 以下程序代码运行后输出的结果是()main(){int i,sum;i=2;sum=0;while(i<10);{sum+=I;printf(“%d\n”,sum);}A.0B. 20C. 死循环D. 程序错误13. 以下程序代码运行后输出的结果是()main(){int i,sum;i=10;while(i>=1){sum+=i;i--;}printf(”%d\n“,sum);}A.54B. 45C. 55D. 无法确定14.以下程序代码运行后输出的结果是()main(){int n=9;While(n>5){n--;printf(”%d“,n);}}A.876B. 8765C. 9876D. 98715. 以下程序代码运行后输出的结果是()main(){int i;for(i=1;i<=40;i++){if(i++%5==0)If(++i%8==0)printf(“%d”,i);}printf(“%d”,i);}printf(“\n”);}A.24B. 32C. 40D. 516. 若:int a=0,b,*p=&b,*q=&a;则下面赋值语句中与b=a;语句等价的是()A. p=q;B. p=*q;C. *p=&n1;D. *p=*q;17. 能正确表示逻辑关系;a大于等于10或a小于等于0的C语言表达式是()A. a>=10 or a<=0B. a>=10 && a<=0C. a≥0||a≤10D. a>=10||a<=018. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()main(){ int m;scanf(“%d”,m);if(m++>5)printf(“%d”,m);elseprintf(“%d\n”,m--);}A. 7和5B. 6和3C. 6和4D. 7和419. 以下程序代码运行后输出的的结果是()#include<stdio.h>{ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2;c++;break;case 4;c+=2;break;}printf(“%d\n”,c);}A. 5B. 3C. 9D. 720. 下列选项中能正确定义数组的语句是()A. int year[0…2012]B. int year[ ]C. int N=2012;D. #define N 2012int year [N]; int year [N];21. 以下能对一堆数组a进行正确初始化的语句是()A. int a[5]=(0,0,0,0,0);B. int a(5)={5};C. int a [ ]={1,2,3};D. int a[ ]={‘5*1’};22. 若有定义;int a=911,*b=&a;则printf(“%d\n”,*b);输出的结果是()A. 无确定B. 912C. 911D. a的地址是23. 执行以下程序段后,a的值为()int*p,a=10,b=5;p=&a;a=*p+b;A.15B. 10C. 5D. 编译出错24. 以下程序代码运行后,a的值为()main(){ int a,k=4,m=6;int *p1=&k;int *p2=&m;a=(p1==p2);printf(“%d\n”,a);}A. 1B. 0C. 4D. 运行时出错,a无定值二、填空题1. 合法的标识符只能由________、_________和_________组成,起始字符必须为_____和_______2. 15%4结果_______15%-4结果_________-15%4结果___________。

C语言期末考试测试试卷(较难)

C语言期末考试测试试卷(较难)

一、选择题(每题2分,共20分)1. 以下关于指针的说法中,错误的是()A. 指针是一个变量,其值为另一个变量的地址B. 指针变量的值可以改变,但其指向的内存地址不能改变C. 指针变量的类型决定了其所指向的数据类型D. 指针变量可以进行算术运算2. 以下关于结构体的说法中,正确的是()A. 结构体变量的成员可以是另一个结构体类型B. 结构体变量的大小等于其所有成员大小之和C. 结构体变量可以直接赋值给另一个结构体变量D. 结构体变量不能作为函数的参数传递3. 以下关于文件操作的说法中,错误的是()A. fopen()函数用于打开文件B. fclose()函数用于关闭文件C. fprintf()函数用于向文件写入格式化数据D. fscanf()函数用于从文件读取格式化数据4. 以下关于动态内存分配的说法中,正确的是()A. malloc()函数用于分配内存,但不需要释放B. calloc()函数用于分配内存,并将内存初始化为0C. realloc()函数用于重新分配内存,但不能改变原有内存的大小D. free()函数用于释放内存,但不能释放由malloc()函数分配的内存5. 以下关于链表的说法中,错误的是()A. 链表是一种动态数据结构,可以动态地插入和删除元素B. 链表中的每个节点都包含数据域和指针域C. 链表的最后一个节点的指针域为NULLD. 链表的插入和删除操作的时间复杂度为O(n)6. 以下关于递归函数的说法中,正确的是()A. 递归函数必须有递归出口,否则会导致无限递归B. 递归函数的时间复杂度一定高于非递归函数C. 递归函数的空间复杂度一定低于非递归函数D. 递归函数的参数必须是指针类型7. 以下关于二维数组的说法中,错误的是()A. 二维数组的每个元素都是一维数组B. 二维数组的行数和列数必须在定义时指定C. 二维数组的元素在内存中是连续存储的D. 二维数组的元素可以通过下标访问8. 以下关于函数指针的说法中,正确的是()A. 函数指针可以指向任意类型的函数B. 函数指针可以作为函数的参数传递C. 函数指针可以直接调用函数D. 函数指针不能进行赋值操作9. 以下关于位运算的说法中,错误的是()A. 位运算的操作数必须是整数类型B. 位运算的优先级高于算术运算C. 位运算的结果是一个整数D. 位运算可以用于实现快速的乘除运算10. 以下关于预处理器的说法中,正确的是()A. 预处理器是在编译阶段之前执行的B. 预处理器可以用于定义宏和条件编译C. 预处理器可以用于包含头文件D. 以上都对二、填空题(每空1分,共10分)1. 在C语言中,字符串是以_____结尾的字符数组。

c语言 测试题

c语言 测试题

第3章一、单项选择题1. 在一个C程序中(B )。

A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。

A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。

A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。

A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。

A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。

A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。

A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。

A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。

C语言练习测试题(带参考答案)-绝对经典题目不看后悔

C语言练习测试题(带参考答案)-绝对经典题目不看后悔

1单选题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A)程序中第一条可执行语句???B)程序中第一个函数???C)程序中的main函数?????????D)包含文件中的第一个函数3、以下说法中正确的是(C)。

选项3)6.下列C选项A D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%xB)a+bC)a123D)123选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。

A)2.5B)2 C)1D)3详见教材P52~53.%为求余运算符,该运算符只能对整型数据进行运算。

且符号与被模数相同。

5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=211.如果inta=3,b=4;则条件表达式"a<b?a:b"的值是__A__。

详见教材表达式1若表达式若表达式此题中的a为3,b为14.下面(D)14~16详见教材(1(2型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B11.0/3=3.666666选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B 同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为415.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16.若“intn;floatf=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A.1B.4C.4.333333D.4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为117.以下对一维数组a的正确说明是:DA)chara(10);B)inta[];C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’};详见教材P143~144,一维数组的定义、初始化类型符数组名[常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数)选项B,详见教材选项A19.在C详见教材数组名[下标inta[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0]表示组中第1个元素;a[1]表示组中第2个元素;a[2]表示组中第3个元素;......;a[9]表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;选项B,逻辑地址下标只能为整数选项C,逻辑地址下标只能放在[]中21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言程序设计试卷一、单项选择题(每题1分,共20分)1. C语言规定:在一个源程序中,main函数的位置( ①)。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下面四个选项中,均是合法浮点数的选项是( ①)。

A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03. 若a=-14,b=3,则条件表达式a<b? a:b+1的值为。

A. -14B. -13C. 3D. 44. 已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是( ①).A. 1,2B. 1,3C. 2,2D. 2,35. 为了判断两个字符串s1和s2是否相等,应当使用( ①)A. if (s1==s2)B. if(s1=s2)C. if (strcmp(s1,s2))D. if (strcmp(s1,s2)==0)6. 以下正确的描述是( ①)。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。

B. 函数的定义不可以嵌套,但函数的调用可以嵌套。

C. 函数的定义和函数的调用均不可以嵌套。

D. 函数的定义和函数的调用均可以嵌套。

7. 在C语言中,下面对函数不正确的描述是( ①)。

A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B. 允许函数递归调用。

C. 函数形参的作用范围只是局限于所定义的函数内。

D. 子函数必须位于主函数之前。

8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( ①)。

A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序范围内均有效D. 该变量为非法变量9. 以下正确的函数形式是( ①)。

A. double fun(int x,int y) { z=x+y;return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun( int x,int y) {double z; z=x+y; return z; }10. 以下程序的输出结果是( ①)。

#include<stdio.h>#define F(y) 8.19-y#define PRINT(a) printf("%d",(int)(a))void main(void){int x=2;PRINT(x*F(3));}A. 10B. 13C. 11D. 报错11. 以下程序中编译和运行结果均正确的一个是( ①)。

A. A. void main(void){union{int n;float x;} comm={1};printf("%d",comm.n);}B. B. void main(void){union{int n;float x;} comm={12.5};printf("%f",comm.x);}C. C. void main(void){union{float x;int n;} comm={12.5}printf("%f",comm.x);}D. D. void main(void){union{int n;float x;} comm=5;printf("%d", comm.n);}12. 设有定义:int a=1,*p=&a; float b=2.0; char c='A'; 以下不合法的运算是( ①)。

A. p++;B. a--;C. b++;D. c--;13. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ①)。

main(){int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p);…}A. *p表示的是指针变量p的地址B. *p表示的是变量a 的值,而不是变量a的地址C. *p表示的是指针变量p的值D. *p只能用来说明p是一个指针变量14. 若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( ①)。

A. 4B. 16C. 32D. 5215. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( ①),(注: _ 表示空格)int al,a2,char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A. 10A_20_BB. 10_A_20_BC. 10A20BD. 10A20_B16. 若有说明:int a[10]; 则对a数组元素的正确引用是( ①)。

A. a[10]B. a[3.5]C. a[5-3]D. a[-1]17. 在C语言中, 一维数组的定义方式为:类型说明符数组名①;A. [整型常量表达式]B. [表达式]C. [整型常量]D. [整型表达式]18. 以下能对一维数组a进行正确初始化的语句是( ①)。

A. in a[10]=(0,0.0,0,0);B. int a[10]={};C. int a[]={0};D. int a[10]={10*1};19. 以下程序段( ①)。

x=-1;do{x=x*x;}while(! x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误20. 以下关于do-while循环的不正确描述是( ①)。

A. do-while的循环体至少执行一次B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C. 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D. do-while的循环体可以是复合语句二、是非判断题(每题1分,共15分)1. C语言规定,标识符中的字母一般区分大、小写。

2. 控制台标准输入设备一般是指键盘。

3. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。

4. 循环体中continue语句的作用是结束整个循环的执行。

5. 关系表达式的值是0或1。

6. 若有说明:int a[3][4]={0},则只有元素a[0][0]可得到初值0。

7. 字符串作为一维数组存放在内存中。

8. 字符数组中的一个元素存放一个字符。

9. 字符数组中的最后一个字符必须是'\0'。

10. 形参为指针变量时,实参必须是数组名。

11. 用数组名作函数参数时传递的是数组的值。

12. 全局变量可以被任何一个函数中的任何一个表达式使用。

13. 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。

14. 表达式i++与++i在任何场合功能完全相同。

15. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。

三、多项选择题(每题1分,共5分)1. 若要求在if 后一对圆跨括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( ①).A.a<>0B.!aC.a=0D.aE.a!=02. 选出所有合法的常量( ①)。

A.3e22.5B.-e-3C.-.1e-1D.'BASIC'E.'\045'F.0fdG.0xfdaLH.e8I.'\\'J."\""3. 以下关于函数原型说法错误的是:(1)对变量的定义”和“声明”是一回事,对函数的“定义”和“声明”也是一回事。

(2)在声明函数原型时,允许只写出参数的类型,而不必写出参数的名称。

(3)如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型。

(4)调用一个函数时,函数名、实参个数、实参类型必须与函数原型一致。

(5)如果被调函数的定义出现在主调函数之前,可以不必加以声明。

(6)所有的函数之间可以互相调用。

(7)在C语言中,所有函数都是平行的,一个函数不能从属于另一个函数,即不能嵌套定义的。

(8)如果函数没有返回值,在定义时可以省略函数类型。

(9)在C语言中,任何函数的定义都不允许为空。

(10)C语言规定,实参变量对形参变量的数据传递是“值传递”。

4. 请从下面关于指针的叙述中, 选出5个正确的叙述。

(1)指针即地址。

(2)指针须先赋值后使用。

(3)当指针p指向数组a的首址后,由于p[i]和a[i]都能引用数组元素,所以这里p和a是等价的。

(4)int *p表示定义了一个指向int类型数据的指针变量p。

(5)数组的指针是指数组的起始地址。

(6)若有定义int a[4],*p=a,则p++后p指向数组a所占内存的第二个字节。

(7)使用指针变量作函数参数采取的是"值传递"的方式。

(8)相同类型的指针可以进行减法运算。

(9)指针变量和许多变量一样可以进行四则运算。

(10)指针p指向数组元素a[2],若要其指向a[4],执行p=p*2即可。

5. 以下关于数组的叙述中,5个最确切的说法是:(1)在声明一个数组变量时必须指定大小。

(2)必须用常量表达式来说明一个数组变量的大小。

(3)在对数组进行初始化时大括号中的数据个数必须和数组的大小相同。

(4)有变量定义int a[3]={0,1,2},b[3];,可以用b=a,使数组b的每个元素和a的每个元素相等。

(5)在C语言中,可以将字符串作为字符数组来处理。

(6)定义了字符数组char c[11];为了给它赋值,可以用c="china";。

(7)如果有char s[15]={"I am a\0 student"};,则strlen(s)的值为6。

(8)C语言中,二维数组中元素排列的顺序是:按行存放。

(9)在C语言中,不能对局部的数组变量进行初始化。

(10)在声明时对数组进行进行初始化必须指定数组大小。

四、程序运行结果题(每题4分,共20分)1. (4分)下面程序的运行结果是( ①) 。

#include<stdio.h>void main(void){int i;char a[]="Time",b[]="Tom";for(i=0;a[i]!='\0'&&b[i]!='\0';i++)if (a[i]==b[i])if (a[i]>='a' && a[i]<= 'z') printf("%c",a[i]-32);else printf("%c",a[i]+32);else printf("*");}2. (4分)下面程序段的运行结果是( ①) 。

相关文档
最新文档